从长格式到宽格式计数

时间:2020-01-27 21:38:16

标签: r

具有这样的长格式:

df <- data.frame(id = c(1,1,1,2,2), text = c("stock","arrange","stock","arrange","arrange"))

如何获得将文本列中的变量设为具有存在数字作为值的宽列格式? 预期输出示例:

data.frame(id = c(1,2) stock = c(2,0), arrange = c(1,2))

2 个答案:

答案 0 :(得分:3)

我们可以使用table来获取频率计数

table(df)

答案 1 :(得分:3)

如果您需要它作为data.frame,这是data.table的选项

library(data.table)
setDT(df)

dcast(df, id ~ text, fun.aggregate = length)
#    id arrange stock
# 1:  1       1     2
# 2:  2       2     0