【发布时间】:2013-08-24 00:53:45
【问题描述】:
几天前我也问过同样的问题 ( click here),但没有提到使用 data.table 的结果将不胜感激
“聚合解决方案”工作正常,即使它很慢!我正在寻找一种更快的方法来解决这个问题。
我想重塑以下data.frame:
df <- data.frame(x=c("p1","p1","p2"),y=c("a","b","a"),z=c(14,14,16))
df
x y z
1 p1 a 14
2 p1 b 14
3 p2 a 16
让它看起来像这样:
df2 <- data.frame(x=c("p1","p2"),a=c(1,1),b=c(1,0),z=c(14,16))
x a b z
1 p1 1 1 14
2 p2 1 0 16
df 中的变量 y 应该被破坏,以便它的元素是新变量,每个都是虚拟编码的。所有其他变量(在这种情况下只是 z)对于每个人都是相等的(p1,p2 等)。特定人 p 具有不同值的唯一变量是 y。
我想要这个的原因是因为我需要通过变量x 将此数据集与其他数据集合并。问题是,每人需要一行(p1,p2 等)。
【问题讨论】:
-
我应该这样做,但是当我发布这个问题时,我只是没有考虑“自包含方面”。因为 eddi 已经发布了一种方式,我想我会保持原样。不过,感谢您的评论
标签: r data.table