数据转换:

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( ):求秩,返回值是向量中对应元素的“排名”。

R语言 交换两列 r怎么交换数据框列_字符串

5.apply系列函数:

R语言 交换两列 r怎么交换数据框列_调用函数_02

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::函数名字

管道符号:%>%,就是然后的意思或者“且”