计算一个id在R中同一天出现多次的频率

时间:2016-07-13 16:28:04

标签: r

我正在尝试计算ID在我的数据中同一天出现多次的次数。

我有一列日期和个人 ID 列。

set.seed(42) 
n     <- 10^5 
ids   <- sample(1:5000, n, replace=T)
dates <- as.Date("1943-07-13", "%Y-%m-%d") - sample(1:9000, n, replace=T)

我提出的解决方案:

sum(table(ids, dates)>1)

问题是(缺乏)效率。在更大的数据集上,我收到错误消息。

1 个答案:

答案 0 :(得分:2)

我们可以使用data.table。使用&#39; ids&#39;和&#39;日期&#39;创建一个data.table,获取按这些列分组的行数,检查是否大于1,提取该列并获取{ {1}}。

sum

基准

sum(data.table(ids, dates)[, .N > 1, .(ids, dates)]$V1)