r - 使用 R 按组检测重叠日期
问题描述
给定一个数据集
structure(list(intervention = c("Self Isolation", "Lockdown Low",
"Lockdown Low", "Self Isolation", "Social Distancing", "Lockdown Low",
"Social Distancing", "Handwashing"), date_start = structure(c(17897,
17957, 18444, 17987, 17897, 17532, 17942, 18018), class = "Date"),
date_end = structure(c(17956, 18262, 18475, 18017, 17956,
18053, 18017, 18048), class = "Date")), class = c("tbl_df",
"tbl", "data.frame"), row.names = c(NA, -8L))
如何检查任何“干预”是否有重叠日期?在此示例中,所有干预措施都很好,但“保持社交距离”和“低锁定”
理想的输出将是一个数据框,每行一个干预,一列填充TRUE
/FALSE
取决于干预是否有任何重叠。
(tidyverse 解决方案的加分项。)
解决方案
我们可以做一个summarise
library(dplyr)
df1 %>%
arrange(intervention, date_start, date_end) %>%
group_by(intervention) %>%
summarise(overlapping = any(date_start < lag(date_end,
default = first(date_end)) & row_number() != 1))
# A tibble: 4 x 2
# intervention overlapping
# <chr> <lgl>
#1 Handwashing FALSE
#2 Lockdown Low TRUE
#3 Self Isolation FALSE
#4 Social Distancing TRUE
推荐阅读
- javascript - Jquery在忽略类的同时获取文本
- html - 将几个表列分组并溢出到左侧
- connection-pooling - Reactive Mongo:已超过 500 的最大操作数 (maxQueueWaitSize)
- c# - System.Text.Json 对象数组反序列化
- c++ - 在循环c ++中限制fps
- javascript - 在我的 Bootstrap 3 测试站点中,本地文件有一个可用的汉堡菜单,但是当我使用 GitHub Pages 托管它时,导航栏不起作用
- php - 没有插件的WordPress弹出窗口
- python-3.x - 找到空行python后停止读取CSV文件
- php - 如何在 laravel 中使用 DomPDF 打印图像?
- r - r - 找到转动的一侧以实现两个轴承之间的最小角度