“R:数据转换”的版本间的差异

来自OBHRM百科
跳转至: 导航搜索
变量再编码
第9行: 第9行:
 
mydata <- rename(mydata, c(item2="y2", item5="y5"))  # 将mydata数据框中的item2修改为y2;item5修改为y5</pre>
 
mydata <- rename(mydata, c(item2="y2", item5="y5"))  # 将mydata数据框中的item2修改为y2;item5修改为y5</pre>
  
==<span id="recode"></span>变量再编码==
+
==<span id="recode"></span>变量重编码==
在进行重新分析之前,需要对反向计分的题目进行调整。比如,有一个量表采用Likert 5分等级量表,其中item2,item8是反向计分的题目。意味着对这两道题的回答需要调整,问卷填写者填的5,需要调整为1;4需要调整为2;3不变;2调整为4;1调整为5。这样,才与其他没有反向计分题目的一致。这个时候,我们就需要对item2,item8进行再编码。
+
在进行重新分析之前,需要对反向计分的题目进行调整。比如,有一个量表采用Likert 5分等级量表,其中item2,item8是反向计分的题目。意味着对这两道题的回答需要调整,问卷填写者填的5,需要调整为1;4需要调整为2;3不变;2调整为4;1调整为5。这样,才与其他没有反向计分题目的一致。这个时候,我们就需要对item2,item8进行重编码。
  
有时,我们需要对变量进行相应的调整,也会用到再编辑。比如,被调查者的教育程度,原来的数据中1代表小学  2代表初中……,后面我们需要将小学与初中进行合并出来,也就是不再区分小学与初中,这时也需要进行再编码。
+
有时,我们需要对变量进行相应的调整,也会用到再编辑。比如,被调查者的教育程度,原来的数据中1代表小学  2代表初中……,后面我们需要将小学与初中进行合并出来,也就是不再区分小学与初中,这时也需要进行重编码。
  
 
R自带的函数相对复杂,建议使用car包中的recode()来进行再编辑。具体操作如下:
 
R自带的函数相对复杂,建议使用car包中的recode()来进行再编辑。具体操作如下:
 
<pre>library(car)  # 启用car包。如果没有安装,请先安装。安装方法,请在R控制台输入:install.packages("car")。
 
<pre>library(car)  # 启用car包。如果没有安装,请先安装。安装方法,请在R控制台输入:install.packages("car")。
mydata$item2 <- recode(mydata$item2, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item2进行再编码    
+
mydata$item2 <- recode(mydata$item2, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item2进行重编码    
mydata$item8 <- recode(mydata$item8, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item8进行再编码</pre>
+
mydata$item8 <- recode(mydata$item8, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item8进行重编码</pre>
  
以上为再编码为同一变量,如果要再编码为新的变量,则操作如下:
+
以上为重编码为同一变量,如果要重编码为新的变量,则操作如下:
 
<pre>library(car)  # 启用car包。如果没有安装,请先安装。安装方法,请在R控制台输入:install.packages("car")。
 
<pre>library(car)  # 启用car包。如果没有安装,请先安装。安装方法,请在R控制台输入:install.packages("car")。
 
mydata$y2 <- NA
 
mydata$y2 <- NA
 
mydata$y8 <- NA
 
mydata$y8 <- NA
mydata$y2 <- recode(mydata$item2, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 将item2再编码为y2    
+
mydata$y2 <- recode(mydata$item2, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 将item2重编码为y2    
mydata$y8 <- recode(mydata$item8, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item8再编码为y8</pre>
+
mydata$y8 <- recode(mydata$item8, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item8重编码为y8</pre>
  
另外,doBy包中的recodevar()也可以用来再编码。
+
另外,doBy包中的recodevar()也可以用来重编码。

2017年3月9日 (四) 17:11的版本

变量重命名

1、用 fix()或者 edit()函数修改变量名称。

2、用R命令修改变量名称。如果需要修改mydata数据框中第5个变量的名称为:item5

names(mydata)[5] <- "item5"

3、用包中的函数修改名称。比如,plyr中有一个rename()函数,专门用来修改变量的名称。

library(plyr)  # 启用plyr包。如果没有安装,请先安装。安装方法,请在R控制台输入:install.packages("plyr")。
mydata <- rename(mydata, c(item2="y2", item5="y5"))  # 将mydata数据框中的item2修改为y2;item5修改为y5

变量重编码

在进行重新分析之前,需要对反向计分的题目进行调整。比如,有一个量表采用Likert 5分等级量表,其中item2,item8是反向计分的题目。意味着对这两道题的回答需要调整,问卷填写者填的5,需要调整为1;4需要调整为2;3不变;2调整为4;1调整为5。这样,才与其他没有反向计分题目的一致。这个时候,我们就需要对item2,item8进行重编码。

有时,我们需要对变量进行相应的调整,也会用到再编辑。比如,被调查者的教育程度,原来的数据中1代表小学 2代表初中……,后面我们需要将小学与初中进行合并出来,也就是不再区分小学与初中,这时也需要进行重编码。

R自带的函数相对复杂,建议使用car包中的recode()来进行再编辑。具体操作如下:

library(car)  # 启用car包。如果没有安装,请先安装。安装方法,请在R控制台输入:install.packages("car")。
mydata$item2 <- recode(mydata$item2, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item2进行重编码   
mydata$item8 <- recode(mydata$item8, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item8进行重编码

以上为重编码为同一变量,如果要重编码为新的变量,则操作如下:

library(car)  # 启用car包。如果没有安装,请先安装。安装方法,请在R控制台输入:install.packages("car")。
mydata$y2 <- NA
mydata$y8 <- NA
mydata$y2 <- recode(mydata$item2, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 将item2重编码为y2   
mydata$y8 <- recode(mydata$item8, "1=5;2=4;3=3;4=2;5=1;else='NA'")  # 对item8重编码为y8

另外,doBy包中的recodevar()也可以用来重编码。