【发布时间】:2013-05-23 19:17:35
【问题描述】:
这应该是一个简单的练习,在 R 中使用 reshape2 包,但不知何故我没有看到它。
假设我有数据:
df <- data.frame(A = rnorm(4), B = rnorm(4))
看起来像:
A B
1 2.3729531 -0.9252266
2 0.9848229 -0.1152347
3 2.1234409 0.9035180
4 -0.5771637 1.2755104
long_form <- melt(df)
看起来像
variable value
1 A 2.3729531
2 A 0.9848229
3 A 2.1234409
4 A -0.5771637
5 B -0.9252266
6 B -0.1152347
7 B 0.9035180
8 B 1.2755104
如何将long_form 转换回df?
我可以通过先添加另一列来做到这一点,
long_form = data.frame(id = c(1:4, 1:4), long_form)
dcast(long_form, id ~ variable)
然后删除id列恢复df;但似乎我应该能够在不显式添加 id 列来索引复制 A 和 B 的情况下做到这一点。
【问题讨论】: