1、创建新变量
方式 一:常规方式,用已有变量组合新变量;
方式二:使用 attach()函数,不用再带数据框变量名;
方式三:使用 transform()函数,按需创建变量,并将其保存到数据框中
mydata<- transform(mydata, sum= x1 + x2, mean = (x1 + x2)/2 )
2、变量重编码
leadership<- within( leadership,{
agecat<- NA
agecat[age>75] <- "Elder"
agecat [age>=55 && age<= 75] <- "Middle Aged"
agecat [age<55] <- "Young"
})
3、变量重命名
names()函数:
names ( leadership) [2] <- "testDate" :将 leadership 数据框的第二列重命名。
批量方式:
names (leadership)[6:10] <- c( "item1", "item2", "item3", "item4", "item5" ) :将 leadership 数据框的第6到第10列依次重命名为 "item1", "item2", "item3", "item4", "item5"
plyr 包中的 rename () 函数进行重命名: rename(dataframe, c(oldname="newname", oldname="newname",...))
4、缺失值
在数据分析之前,确保把所有的缺失数据重编码为 缺失值,否则分析结果将失去意义。含有缺失值的算术表达式和函数计算的结果也是缺失值。
NA:Not Available 不可用
NaN:not a number【is.nan()来判断】
Inf 和 -Inf:正无穷和负无穷 5/0= Inf 【is.infinite()来判断】
is.na(object):返回一个相同大小的对象
is.na( leadership[ , 6:10]) 判断 leadership 第6至10列的缺失值情况 ,返回的是一个 5 列的对象
删除缺失值:
(1)y<- sum( c(1,2, NA, 3), na.rm=TRUE)
(2)na.omit()删除所有含有缺失值 的行: newData <- na.omit(dataFrame)
5、类型转换
向一个数值类型向量中添加一个字符串会将向量中所有元素转换为字符型 。
is.numeric() as.numeric()
is.character() as.character()
is.vector() as.vector()
is.matric() as.metric()
is.data.frame() as.data.frame()
is.factor() as.factor()
is.logical() as.logical()
6、数据排序
order()函数可对数据框进行排序,默认 升序,变量前加“-”号可变成降序。
newData <- leadership(order( leadership$gender, -leadership$age))
7、数据集合并
(1)添加列
A:使用 merge()函数: total <- merge(dataFrameA, dataFrameB, by= c("ID", "Country") ) 相当于通过 ID, Country 进行内联结进行合并;
B:相同行数的数据框 可通过 cbind(A, B)进行合并
(2)添加行
使用 rbind()函数,要求两个数据框的列变量必须相同,顺序不做要求。如果某个数据框中有多余的列,合并前需先删除多余的列,或者在少的那个数据框中增加列,并将其值设置为NA。