R 函数学习 - melt(),cast()
2020-05-18 本文已影响0人
Thinkando
reshape2包:
- melt-把宽格式数据转化成长格式。
- cast-把长格式数据转化成宽格式。(dcast-输出时返回一个数据框。acast-输出时返回一个向量/矩阵/数组。)
- cast 函数的作用除了还原数据外,还可以对数据进行整合。
- dcast 输出数据框。公式的左边每个变量都会作为结果中的一列,而右边的变量被当成因子类型,每个水平都会在结果中产生一列。
tidyr包:
- gather-把宽度较大的数据转换成一个更长的形式,它类比于从reshape2包中融合函数的功能
- spread-把长的数据转换成一个更宽的形式,它类比于从reshape2包中铸造函数的功能。
data.table包:
- data.table的函数melt 和dcast 是增强包reshape2里同名函数的扩展
melt(data, id.vars, measure.vars, variable.name = "variable", ..., na.rm = FALSE, value.name = "value")
其中id.vars是指定固定的列(原始的列仍然在列名上)
measure.vars是需要合并的列
variable.name是指合并后原来列名的新名字
value.name是相对应的值的新名字
> library(data.table)
> ID <- c(NA,1,2,2)
> Time <- c(1,2,NA,1)
> X1 <- c(5,3,NA,2)
> X2 <- c(NA,5,1,4)
> mydata <- data.table(ID,Time,X1,X2)
> mydata
ID Time X1 X2
1: NA 1 5 NA
2: 1 2 3 5
3: 2 NA NA 1
4: 2 1 2 4
> md <- melt(mydata, id=c("ID","Time"))
> md
ID Time variable value
1: NA 1 X1 5
2: 1 2 X1 3
3: 2 NA X1 NA
4: 2 1 X1 2
5: NA 1 X2 NA
6: 1 2 X2 5
7: 2 NA X2 1
8: 2 1 X2 4
image.png