对于列中的每个值,计数该值在另一列中的出现

时间:2018-10-15 10:58:20

标签: r for-loop sum compare matching

我有一个简单但很大的数据帧(lateness_tbl),该数据帧由三列(天,到期日,结束日期)组成。我需要查看每个到期日与结束日期匹配的次数。我目前正在执行以下操作:

x <- c()
for (i in 1:length(lateness_tbl$Due_Date){
    x[i] <- sum(lateness_tbl$Due_Date[i] == lateness_tbl$End_Date)}

唯一的问题是,我有200万条记录需要比较,并且正在寻求社区的帮助以加快速度。任何技巧,窍门或更正会很棒。谢谢

1 个答案:

答案 0 :(得分:0)

有一个简单的解决方案。您可以定义一个新的向量来存储EndDate和DueDate之间的差异,然后计算该向量上等于零的条目。

differences <- lateness_tbl$Due_Date - lateness_tbl$End_Date
length(which(differences == 0))

如果Due_dateEnd_Date是数据(而不是整数),则可以使用here所示的difftime函数,并使用上述相同的策略。