我正在尝试计算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)
问题是(缺乏)效率。在更大的数据集上,我收到错误消息。
答案 0 :(得分:2)
我们可以使用data.table
。使用&#39; ids&#39;和&#39;日期&#39;创建一个data.table,获取按这些列分组的行数,检查是否大于1,提取该列并获取{ {1}}。
sum
sum(data.table(ids, dates)[, .N > 1, .(ids, dates)]$V1)