请考虑以下代码.
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重新生成原始数据框?
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)