按唯一ID将列拆分为多个因子列

时间:2017-12-22 18:44:46

标签: r split

我有一个事务数据的数据框,例如:

ID   TYPE    QUANTITY
01    A    2
01    B    1
01    C    4
02    A    3
02    C    2
03    C    3

我需要将ID除以TYPE中的因素,并从这些因素中创建包含每列QUANTITY值的新列。

所以它看起来像这样:

ID    A    B    C
01    2    1    4
02    3    0    2
03    0    0    3

3 个答案:

答案 0 :(得分:2)

使用tidyr包并使您的长格式为宽格式

library(tidyr)
spread(df, key = 'TYPE', value= 'QUANTITY')

答案 1 :(得分:1)

您可以使用dcast()包中的reshape2

library(reshape2)
dcast(df, ID ~ TYPE, fun.aggregate = sum)
  ID A B C
1  1 2 1 4
2  2 3 0 2
3  3 0 0 3

答案 2 :(得分:0)

这基本上是使用base r

reshape(data,v.names="QUANTITY",timevar = "TYPE",idvar = "ID",direction = "wide")