This question already has an answer here:
Simpler way to reconstitute a melted data frame back to the original

(1个答案)


已关闭8年。




考虑下面的代码。
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重新制定原始数据帧?

最佳答案

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')

10-04 14:27