首页 > 解决方案 > 从长格式到宽格式计数

问题描述

有这样的长格式:

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))

标签: r

解决方案


如果您需要它作为 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

推荐阅读