一、创建新变量
创建一个新的变量,归入数据
mydata<-data.frame(x1=c(2,2,6,4),x2=c(3,4,2,8)) #构建数据
#1
mydata$sumx<-mydata$x1+mydata$x2
mydata$means<-(mydata$x1+mydata$x2)/2
#2
attach(mydata)
mydata$sumx<-x1+x2
detach(mydata)
#3
mydata<-transform(mydata,
sumx=x1+x2,
means=(x1+x2)/2)
二、变量的重编码
== | 严格等于 |
!= | 不等于 |
!x | 非x |
x | y | x或y |
x & y | x和y |
99岁为缺失值,定为NA
variable[condition]<-expression 将只在condition的值为TRUE时执行赋值
data$age[data$age == 99] <-NA #年龄严格等于99为空
data$age[data$age > 75] <-Elder
data$age[data$age >=55 & data$age <= 75] <-Middle Aged
还可以写成下面形式,首先我们创建了agecat变量,并将每一行设定为缺失值。再根据剩余语句执行重编码。
data<-within(data,{
agecat<-NA
agecat[age>75] <-"Elder"
agecat[age >= 55 & age <= 75] <-"Middle Aged"})
三、变量重命名
fix(data) #调用fix函数,在表格中进行更改
四、缺失值
缺失值以NA表示,不可能出现的值用NaN来表示。
函数is.na()允许检测缺失值是否存在,表现为TRUE和FALSE。
缺失值不可被比较,即x == NA 永远不会出现FALSE
y<-c(1,2,3,NA)
is.na(y)
(一)在分析中排除缺失值
x<-c(1,2,NA,3)
y<-x[1]+x[2]+x[3]+x[4] #由于x3是缺失值,所以y和z也是缺失值NA
z<-sum(x)
大部分数值函数都拥有一个na.rm=TRUE选项,可以在计算之前移除缺失值,再进行计算。
x<-c(1,2,NA,3) y<-sum(x,na.rm=TURE)
这里y=6.
也可以通过函数na.omit()移除所有含有缺失数值的行。
newdata<-na.omit(data)
五、日期值
六、数据排序
七、合并
(一)添加列
total<-merge(dataA,dataB,by="ID") #通过共同变量ID联结
total<-merge(dataA,dataB,by=c("ID","country")) #通过共同变量ID,country联结
total<-cbind(dataA,dataB) #横向合并,无公共索引。要求相同行数且以相同顺序排序
(二)添加行
total<-rbind(dataA,dataB)
拥有相同变量,顺序不一定相同。