第一部分 变量重编码
在很多时候,我们需要对数据进行分类,比如根据血糖值将患者分成糖尿病组与非糖尿病组,亦或者按照年龄将样本分为老年人,中年人和青年人等等,这些就需要我们对数据进行重新编码。
# 创建新的变量和数据集
x1 <- c(1,2,3,4,5) # 向量x1
x2 <- c(1,4,9,16,25) # 向量x2
age <- c(68,25,39,76,52) # 向量age
sex <- c(0,1,1,0,1) # 向量sex
mydata <- data.frame(x1,x2,age,sex) # 用向量构建新的数据框
# 按照年龄创建两个分类
mydata$agecat1 <- ifelse(mydata$age > 65,
c("older"), c("younger")) # 大于65岁为老年组,其余为青年组
mydata #查看数据
# 在R中我们通常用[]来对数据进行索引
# 按照年龄创建3个类
attach(mydata) # 固定数据
mydata$agecat2[age > 75] <- "Elder" # 将年龄大于75岁的设为老年组
mydata$agecat2[age > 45 & age <= 75] <- "Middle Aged" # 年龄在45~75设为中年组
mydata$agecat2[age <= 45] <- "Young" # 年龄在45岁以下的设为青年组
mydata # 查看数据
detach(mydata) # 解固定数据
关于如何在R中进行数据的索引,我会在以后的内容中和大家详细介绍,先掌握上面的索引方式即可。
第二部分 变量重命名
在R中你既可以采用编程的方式对变量进行重命名,也可以采用像SPSS那种的交互方式来修改变量名,这里推荐使用编程的方式来对变量进行重命名。
# 使用rename()函数重命名
library(reshape) # 加载reshape包
# 创建新的变量
x1 <- c(1,2,3,4,5) # 向量x1
x2 <- c(1,4,9,16,25) # 向量x2
age <- c(68,25,39,76,52) # 向量age
sex <- c(0,1,1,0,1) # 向量sex
mydata <- data.frame(x1,x2,age,sex) # 用向量构建新的数据框
# 查看数据框的列名
names(mydata)
# [1] "x1" "x2" "age" "sex"
# mydata <- rename(mydata, c(oldname="newname")) # 第一个参数是数据框的名字,第二个参数是一个向量,其中等号左侧是旧的变量名,右侧是新的变量名(需用引号)
mydata <- rename(mydata, c(x1="ID"))names(mydata)#[1] "ID" "x2" "age" "sex"
# 当然你也可以直接使用names()这个函数来对变量重命名
names(mydata) <- c("ID","y","age","sex")
names(mydata)#[1] "ID" "y" "age" "sex"
关于变量重编码和重命名的内容现已讲解完毕,其中重编码部分的内容相对比较困难,需要大家勤加联系才能熟练掌握!