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

计算一个id在R中同一天出现多次的频率,r,R,我试图计算一个id在同一天的数据中出现多次的频率 我有一列日期和一列个人ID 问题是(缺乏)效率。在较大的数据集上,我收到一条错误消息。我们可以使用data.table。创建一个带有“id”和“dates”的data.table,获取按这些列分组的行数,检查其是否大于1,提取该列并获取总和 sum(data.table(ids, dates)[, .N > 1, .(ids, dates)]$V1) 基准 仅供参考,您可以编写1e5,这样R就不必进行10^5的计算。 sum(table(

我试图计算一个id在同一天的数据中出现多次的频率

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


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

我们可以使用
data.table
。创建一个带有“id”和“dates”的data.table,获取按这些列分组的行数,检查其是否大于1,提取该列并获取
总和

sum(data.table(ids, dates)[, .N > 1, .(ids, dates)]$V1)
基准
仅供参考,您可以编写
1e5
,这样R就不必进行10^5的计算。
sum(table(ids, dates)>1)
sum(data.table(ids, dates)[, .N > 1, .(ids, dates)]$V1)
system.time(sum(data.table(ids, dates)[, .N > 1, .(ids, dates)]$V1))
#   user  system elapsed 
#  0.05    0.00    0.05 
system.time(sum(table(ids, dates)>1))
#   user  system elapsed 
#   0.87    0.19    1.07