我有data.frame
,df
:
userId action countEvent
A click 1
A view 2
A purchase 1
B Edit 1
B Edit 1
C click 1
我怎样才能获得此data.frame
userId click view purchase Edit
A 1 2 1 0
B 0 0 0 2
C 1 0 0 0
我试试
spred_data<- df %>% spread(action ,countEvent )
但是它的返回错误
行的重复标识符
答案 0 :(得分:1)
您可以使用data.table包轻松完成此操作。与data.frame相比,Data.table包非常快(这就是为什么我现在用于数据修改,我主要使用data.table)。以下是使用data.table包的解决方案:
dcast(df[,sum(countEvent), by=.(userId, action)],
formula = userId ~ action,
fun.aggregate=sum,
value.var="V1")