R 筛选日期早于另一个变量指定的行的行
仅当Med 0出现在Med=1的日期之前时,我才想筛选所有Med=0(按ID分组)。如何使用dplyr、base r或其他软件包实现这一点R 筛选日期早于另一个变量指定的行的行,r,filter,dplyr,slice,R,Filter,Dplyr,Slice,仅当Med 0出现在Med=1的日期之前时,我才想筛选所有Med=0(按ID分组)。如何使用dplyr、base r或其他软件包实现这一点 df <- read.table(header = TRUE, text = " ID Med date 1 0 2006-01-01 1 0 2006-02-02 1 1 2006
df <- read.table(header = TRUE, text = "
ID Med date
1 0 2006-01-01
1 0 2006-02-02
1 1 2006-06-02
1 0 2006-08-02
1 2 2007-12-01
2 0 2003-01-01
2 1 2003-02-02
2 3 2003-06-02
2 0 2003-08-02
2 8 2007-12-01
3 1 2007-04-20
",stringsAsFactors=FALSE)
df使用dplyr
,您可以按ID
进行分组,按日期安排
,并选择Med==1
library(dplyr)
df %>%
group_by(ID) %>%
arrange(date) %>%
filter(cumsum(Med == 1) == 0 & Med == 0)
# ID Med date
# <int> <int> <chr>
#1 1 0 2006-01-01
#2 1 0 2006-02-02
#3 2 0 2003-01-01
库(dplyr)
df%>%
分组依据(ID)%>%
安排(日期)%>%
过滤器(总和(Med==1)==0&Med==0)
#身份证有效期
#
#1 1 0 2006-01-01
#2 1 0 2006-02-02
#3 2 0 2003-01-01