我确定这是微不足道的,但我找不到该怎么做。
我有一个数据框,其中有个人,每个人都可以有几个属性,并且每个属性都以多种方式分类。目前它是长形的,记录看起来像(以示意图的形式,实际上它有点复杂):
IndividualID Property PropClass
1 X A
1 Y B
2 X A
3 Y B
3 W C
3 Z A
我想要的是每个单独的 ID 有一行,带有单独的 ID,然后是该个人在原始文件中的每个属性和 PropClass 的列对,所以在这种情况下:
IndividualID Prop1 PropClass1 Prop2 PropClass2 Prop3 PropClass3
1 X A Y B NA NA
2 X A NA NA NA NA
3 Y B W C Z A
因此,Prop 和 PropClass 变量的数量必须与原始数据集中任何个人 ID 的最大行数一样多(不大,大约 5),并且个人在原始数据集中的行数少于该最大数,对那个人没有任何意义的额外列中包含 NA。个人的 Prop 和 PropClass 变量的顺序无关紧要(尽管它也可能是长格式文件上的原始顺序)。
显然,如果您为每个可能的 Prop 值设置一对 Prop 和 propClass 列,则很容易做到这一点(例如,使用 reshape),但是 Prop 的可能值有数百个,因此文件变得庞大且无用。我不敢相信没有一种简单的方法可以做我想做的事,但是尽管在我看来是刻苦的搜索,但我还是没有找到它。请告诉我我是个白痴,如果是这样,我该如何治愈我的白痴。