我也问过同样的问题,前几天( click here),但没有提到使用data.table
结果,将不胜感激使用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已经发布了一种方式,我想我会保持原样。但是,感谢您的评论 – beginneR