【发布时间】:2017-11-06 12:10:47
【问题描述】:
我有以下带有 R 的 data.table
library(data.table)
dt = data.table(ID = c("person1", "person1", "person1", "person2", "person2", "person2", "person2", "person2", ...), category = c("red", "red", "blue", "red", "red", "blue", "green", "green", ...))
dt
ID category
person1 red
person1 red
person1 blue
person2 red
person2 red
person2 blue
person2 green
person2 green
person3 blue
....
我正在寻找如何为每个唯一 ID 创建分类变量 red、blue、green 的“频率”,然后展开这些列以记录每个的计数。生成的 data.table 如下所示:
dt
ID red blue green
person1 2 1 0
person2 2 1 2
...
我错误地认为以data.table 开头的正确方法是按组计算table(),例如
dt[, counts :=table(category), by=ID]
但这似乎是按组 ID 计算分类值的总数。这也不能解决我“扩展”data.table 的问题。
这样做的正确方法是什么?
【问题讨论】:
标签: r dataframe data.table frequency