1
我有一個包含ID,日期和事件的數據集。事件是一個二元結果變量。 每個ID最多隻能有一個事件。該事件之後可能會有更多的0。我想要刪除按事件分組顯示的所有零。我有一個使用dplyr的解決方案,但有興趣知道是否有更好的方法。過去某個時候發生事件的好方法是什麼?在事件發生後從組數據中刪除行
library(dplyr)
d <-as.Date("01-05-15", "%d-%m-%y")
#Starting dataset
df <- data.frame(ID= c(rep(234,4),rep(235,6), rep(237,5)),
date = as.Date(c((d-4):(d-1),(d-1):(d+4),(d+1):(d+5)),origin="1960-10-01"),
event = c(0,1,0,0,0,0,0,0,0,0,0,0,0,1,0))
#desired result
df[c(1:2,5:14),]
#How can Improve this?
df %>% group_by(ID) %>%
mutate(cumulative = lag(cumsum(event), default = 0)) %>%
filter(cumulative <1) %>%
select(-cumulative) %>% ungroup
感謝您的解釋,我試圖瞭解所有(事件== 0)部分。 –