reshape2
有时候合并两个数据集的时候,直接使用cbind、rbind的方式不能区分哪些数据分别来自哪个数据集,所以这时候可以使用merge函数
merge(x,y,by=c("列1"," 列2"))
按照定义的某一列合并数据集,当然也可以使用reshape2包完成(事先安装好)
reshape2包下的melt()函数
也可以说是为了区分id变量( id variables)和测量变量(measured variables)
melt(data,id.vars=c(" "),measure.vars=c(" "),variable.name="variable",value.name="value")
id.vars:你不想改变的数据列
measure.vars:你想将列转化为行展开的列名,id不指定的默认都是测试变量
variable.name:melt操作后,为新列变量取名
value.name:新列对应值的变量名
有关melt()函数参考https://blog.csdn.net/Judezhl/article/details/106544746
reshape2下的其他处理函数
处理数据框用dcast()函数,而acast()函数返回向量、矩阵或者数组
dcast(data_melt,id.vars~measured.vars,fun_aggregate= ,na.rm=)
dcast()函数的处理是在上面melt的处理完的基础上,进一步再处理
id.vars 指定要保留的id变量
measured.vars 指定测试变量,不一定要与melt处理后的结果指定一致
fun_aggregate 对测试变量数据统一处理如mean,sum
na.rm 对空缺值的处理
原本melt一处理将一些列名按照行展开了,扩展了很多行,但是一经dcast处理,返回形式好像又返回了当初的形式
(reshape2包里面的重要函数就是melt,dcast,acast,尚在学习中,后续补充)