在 R 中查找日期列中的最后一个日期

Tim*_*Tim 1 r date

我有一列开始日期和停止日期,我需要提取最新(最近)的停止日期才能计算持续时间。(最早开始日期 - 最晚停止日期)不幸的是,最后一列中的日期不一定是最晚日期。因此,我必须逐行比较日期才能找出最新日期。另一个需要注意的是,并非所有列都有日期。

这是日期列的示例:

pacman::p_load(tibble, lubridate)

start_1 <- as_tibble(sample(seq(ymd("1999/01/01"), ymd("2000/01/01"), by="day"), 5))
stop_1 <- as_tibble(sample(seq(ymd("2000/01/01"), ymd("2001/01/01"), by="day"), 5))
stop_2 <- as_tibble(c(ymd("2000/03/05"), ymd("2000/11/15"), ymd("2000/07/22"), ymd("2000/05/05"), NA))
stop_3 <- as_tibble(c(ymd("2000/12/12"), ymd("2000/02/09"), NA, NA, NA))

dat <- cbind(start_1, stop_1, stop_2, stop_3)
Run Code Online (Sandbox Code Playgroud)

我真的不知道该怎么做,非常感谢任何帮助。

谢谢你!

小智 5

一种选择是使用 apply():

durs = as.Date(apply(dat[,c(2:ncol(dat))],1,max,na.rm=T))-dat[,1]
Run Code Online (Sandbox Code Playgroud)

这假设第一列包含开始日期,其后的所有列都包含可能的停止日期。