R语言实战-4基本数据管理

书中有一句:数据分析多大60%以上花在实际分析前数据的准备上。
简直不能同意更多。
继续学习第四章的内容。

4.2创建新变量

先创建一个数据框,然后想在数据框内添加新的变量,可采用三种方法:

mydata1<-data.frame(x1=c(2,2,6,4),
x2=c(3,4,2,8))

方法1

mydata1$sum<-mydata1$x1+mydata1$x2
mydata1$mean<-(mydata1$x1+mydata1$x2)/2
mydata1

方法2

attach(mydata1)
mydata1$sum<-x1+x2
mydata1$mean<-(x1+x2)/2
detach(mydata1)

方法3

mydata1<-transform(mydata1,
sum=x1+x2,
mean=(x1+x2)/2)
建议采用第三种方法。

4.3变量的重编码

将误编码的值替换为正确值
variable[condition]<-expression仅在condition的值为TRUE时执行赋值。

leadership$age[leadership$age == 99]<-NA #将99岁的年龄之重编码为缺失值。

将一个连续性变量修改为一组类别值

leadership$agecat[leadership$age>75]<-"Elder" #创建新的变量

或者使用以下代码更为紧凑

leadership<-within(leadership,{
agecat<-NA
agecat[age>75]<-"Elder"
agecat[age>=55 &age<=75]<-"Middle aged"
agecat[age<55]<-"Young"
})

4.4变量的重命名

fix(leadership)#调用交互式的编辑器,修改变量名
names(leadership)[2]<-"testDate" #修改第二列的列名

4.5缺失值

y<-c(1,2,3,NA)
is.na(y) #该函数可用于检测缺失值是否存在

以上将会返回FALSE FALSE FALSE TRUE
注意:
缺失值是不可比较的
R中并不把无限的或者不可能出现的数值标记成缺失值
正无穷用Inf,负无穷用-Inf标记,不可能的值用NaN,识别这些数值,可用is.infinite()或者is.nan().

x<-c(1,2,NA,3)
y<-sum(x,na.rm=TRUE) #很多函数都含有na.rm=TRUE这个选项,可以排除缺失值

注意在使用函数处理不完整的数据时,务必查阅它们的帮助文档(?sum),检查这些函数师傅和处理缺失数据的。
na.omit()可以移除所有含有缺失值的行!

你可能感兴趣的:(R语言实战-4基本数据管理)