根据R中的死亡、转移和数据收集日期创建研究结束日期变量



我在R中有纵向患者数据。我想从我已有的三个不同日期创建一个end_date变量(下表第4列(,以先发生的日期为准。如果没有发生死亡或转移,end_date将等于data_collection_end_date:

转移日期数据采集结束日期018年7月07NA<2021年12月1日>
patid 死亡日期
1 2018年7月7日 2021年11月1日 2016年7月07日
2019年7月7日 2018年7月07日 2021年11月1日 2018年7日
3 2020年7月7日 2018年7月07日 2021年11月1日
4 NA2021年1月12日
5 NA NA 2021年11月1日
6 NA 2016年9月7日 2021年11月1日 2016年09月7日

捕获最先发生的

library(dplyr)
library(lubridate)
# Your sample data
patid <- c(1:6)
death_date <- dmy(c("07/07/2018", "07/07/2019", "07/07/2020", NA, NA, NA))
transfer_date <- dmy(c("07/07/2016", "07/07/2018", "07/07/2018", NA, NA, "07/09/2016"))
data_collection_end_date <- dmy(c("01/11/2021", "01/11/2021", "01/11/2021", "01/11/2021", "01/11/2021", "01/11/2021"))
# Data frame
df <- data.frame(patid, death_date, transfer_date, data_collection_end_date)

# @GuedesBF's solution corrected to capture earliest date
df %>% rowwise() %>%
mutate(end_date = min(c_across(death_date:data_collection_end_date), na.rm = TRUE))

如果日期是正确的日期类型对象,我们可以使用rowwise((和max((。我们可能不得不将它们转换为日期,以防它们是字符串。

library(dplyr)
data %>% rowwise() %>%
mutate(end_date = min(c_across(death_rate:data_collection_end_date), na.rm = TRUE))

相关内容

  • 没有找到相关文章

最新更新