我有一个事务数据的数据框,例如:
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
答案 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")