我有一个数据框,用于跟踪个人 x (Bob) 在感兴趣的时间范围(1900-1999 年)内的服务参与情况 (srvc_inv {1, 0})。
library(tidyverse)
dat <- data.frame(name = rep("Bob", 100),
day = seq(as.Date("1900/1/1"), as.Date("1999/1/1"), "years"),
srvc_inv = c(rep(0, 25), rep(1, 25), rep(0, 25), rep(1, 25)))
正如我们所看到的,Bob 有两个服务片段:一个片段在 26:50 行之间,另一个片段在 76:100 行之间。
如果我们想确定anyBob 在时间范围内的服务参与度,我们可以使用一个简单的 max 语句,如下所示。
dat %>%
group_by(name) %>%
summarise(ever_inv = max(srvc_inv))
但是,我想确定 Bob 在感兴趣的时间范围内的服务次数(在本例中为 2)。通过连续日期内服务参与的中断来识别不同的服务事件。有人知道如何编程吗?谢谢!