用reshape2反转熔化操作

时间:2013-04-09 14:46:39

标签: r reshape2

请考虑以下代码。

library (reshape2)
x = rnorm (20)
y = x + rnorm (rnorm (20, sd = .01))

dfr <- data.frame (x, y)
mlt <- melt (dfr)

当我尝试用dcast转换此操作时,

dcast (mlt, value ~ variable)

我得到的是一个有三列的数据框(例如,不适合散点图)。 如何用dcast重新创建原始数据框?

1 个答案:

答案 0 :(得分:5)

R怎么可能知道融化之前存在的顺序?即x的第一行与y的第一行匹配的概念。

如果添加索引列(因为R会抱怨重复的row.names),您可以简单地执行此操作:

dfr$idx <- seq_along(dfr$x)   
mlt <- melt(dfr, id.var='idx')
dcast(mlt, idx ~ variable, value.var='value')