根据姓名和日期排序后,给一列排序号
df %>%arrange(姓名, 日期) %>%group_by(姓名) %>%mutate(record_rank = row_number()) %>%dplyr::ungroup()
如果事件1出现后,后面所有的值用NA填充
针对在进行整理生存分析数据时
df %>%arrange(姓名, record_rank) %>%group_by(姓名) %>%mutate(mark = cumsum(status == 1)) %>%mutate(new_status = if_else(mark <= 1, status, NA)) %>%ungroup() %>%mutate(new_status = ifelse(is.na(new_status), 0, new_status))
向上或向下填充NA值
df %>% group_by(姓名) %>% fill(feature1, .direction = 'up') %>%fill(feature1, .direction = 'down')