如何在R中用tidyverse统计date2早于date1的错误记录数
统计date2早于date1的错误记录数量
用tidyverse的summarise实现
先构造示例数据集:
library(tidyverse) df <- tibble( date1 = as.Date(c("2022-05-09", "2022-07-21", "2023-03-08", "2022-02-06")), date2 = as.Date(c("2023-01-10", "2023-03-06", "2022-12-11", "2023-02-11")) )
通过summarise()结合sum()统计错误记录数:
df %>% summarise(error_count = sum(date2 < date1, na.rm = TRUE))
参数na.rm = TRUE用于忽略日期列中的缺失值,避免计算结果返回NA。运行后会得到一个包含错误数量的单行tibble,示例中结果为1,对应第3条错误记录。
更简便的base R方法
如果不需要保持tidyverse的管道风格,直接用base R也能快速得到结果:
sum(df$date2 < df$date1, na.rm = TRUE)
原理说明:date2 < date1会逐行生成布尔值(TRUE代表date2早于date1,即错误记录;FALSE代表正常),sum()会自动将TRUE转换为1、FALSE转换为0,求和后就是错误记录的总数。
内容的提问来源于stack exchange,提问作者Matt
相关产品推荐
相关产品推荐

