请考虑以下代码。
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重新创建原始数据框?
答案 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')