这应该是一个简单的练习,在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的情况下执行此操作。
答案 0 :(得分:2)
你可以做到
dcast(melt(df), 1:4 ~ variable)
稍短。