[英]melt and append data using reshape2 functions in R
这应该很简单,但出于某种原因,我被困住了。 我的数据看起来像
A <- data.frame(x=rnorm(10), y=rnorm(10), z=rnorm(1))
B <- data.frame(x=rnorm(10), y=rnorm(10), z=rnorm(1))
C <- data.frame(x=rnorm(10), y=rnorm(10), z=rnorm(1))
method1 <- list(A=A,B=B,C=C)
method2 <- list(A=A,B=B,C=C)
biglist <- list(method1, method2)
我想重新格式化数据看起来像
x y z dataset method
- - - --- -----
1 1 1 A 1
1 0 2 A 1
1 0 3 A 1
1 1 3 A 1
1 1 1 B 1
1 0 2 B 1
1 0 3 B 1
1 1 3 B 1
1 1 1 C 1
1 0 2 C 1
1 0 3 C 1
1 1 3 C 1
1 1 1 A 2
1 0 2 A 2
1 0 3 A 2
1 1 3 A 2
1 1 1 B 2
1 0 2 B 2
...
融化不是我想要的,因为它折叠了我的x / y / z变量标题。
您的data.frames应该有一个主键,例如标识符列,或者具有唯一值的列 - 否则,您将最终得到几个不相关行中某个点的x,y,z坐标。 我会假设x
就是这样一个列。
如果生成的data.frame过于垂直,您可能还需要在melt
后调用dcast
。
library(reshape2)
d <- melt(biglist, id.vars="x")
d <- dcast( d, L1 + L2 + x ~ variable )
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.