我有一个这样的数据框,每个人都有多次访问.我想 for each 人捕获第一次发生MCI(MCI=1)的FDAY,并将值放入另一个名为Days的列中.我可以用dplyr来做吗?
ID <- c(1,1,1,1,1,2,2,2)
Visit <- c(1,2,3,4,5,1,2,3)
MCI <- c(0,1,0,1,0,0,1,1)
FDAYS <- c(20,60,40,80,100,30,60,90)
df <- data.frame(ID, Vist, MCI, FDAYS)
我试过了,但它只给了我每个人第一次访问的FDAY.
df %>%
group_by (ID) %>%
mutate(DAYS = case_when(MCI == 1~ min(FDAYS),
.default = NA)) %>%
mutate(DAYS = first(na.omit(DAYS)))