用reshape2反转熔化操作

Gil*_*más 5 r reshape2

请考虑以下代码.

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

dfr <- data.frame (x, y)
mlt <- melt (dfr)
Run Code Online (Sandbox Code Playgroud)

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

dcast (mlt, value ~ variable)
Run Code Online (Sandbox Code Playgroud)

我得到一个有三列的数据框(例如,不适合散点图).如何使用dcast重新生成原始数据框?

Jus*_*tin 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')
Run Code Online (Sandbox Code Playgroud)