数据转换:
1.随机抽样: sample(条件,个数,replace=是否放回)
2.数据框的翻转(excel中行列的互换):t( )根据行名翻转:x[rev(rownames(x)), ]
向量的翻转(顺序颠倒):rev( )
3.单位转换:
transform(women,height=height*2.54) 直接修改了women数据框中height一列的值
4.排序:
sort( ):默认数字从小到大,字符串按ASSIC码排,只能用于向量,用于数据框时需要通过索引:mtcars[sort(rownames(mtcars))]
order( ):直接对向量排序,但返回的是元素所在的位置而不是值(索引),方便间接对数据框排序:mtcars[order(mtcars$mpg),]把mpg这一列的数从小到大排了
按相反的顺序就在-order,对个条件就在order( )里再加,逗号隔开,顺序在前的优先排
rank( ):求秩,返回值是向量中对应元素的“排名”。
5.apply系列函数:
apply:处理数据框或矩阵,apply(x, Margin=(1:对行操作;2:对列操作),FUN=操作函数)
lapply:返回值是列表形式 sapply:返回值是向量或矩阵
tapply:处理因子数据 tapply(state.name(数据集), state.division(是个因子), FUN=length)通过division对name分组,然后每组求length
6.数据的中心化与标准化
中心化:减去均值;标准化:中心化之后的除以标准差(就是变成正态分布了)
scale(x,center=是否中心化处理,scale=是否标准化处理)
7.reshape2包
melt:融合 取某一列或几列作为索引,把剩余的列融为一列 melt(airquality , id.vars=c("month","day")),除了month和day列其他的都合成一列
dcast:~:表示相关,二者有关系但不一定相等
8.tidyr包
gather: 变长数据gather(tdata,key="新合成的列名 ",value="key对应的值",tdata里要合成的列)和reshape相比,gather可以让固定列不变,而其他列进行转换
spread: 变宽数据 spread(data, key="你要处理的那列",value="那列对应的数据列") 和gather互逆处理,名称和数值要对应
separate:分列 separate(tdata, col=要分的那列列名, into=c(分开后的列名,记得加引号), seq=分的依据)
unite:合并列 unite(data,col="合并后的列名", 要和的列名(不用加引号),seq="用什么连接起来")
9.dplyr包(功能太过强大,二百多个函数)
调用函数:dplyr::函数名字
管道符号:%>%,就是然后的意思或者“且”