【发布时间】:2020-06-26 04:27:53
【问题描述】:
从以下数据框中,我想从每个 ID 中创建一个新列,其中包含从出院日期到下一个入场日期之间的天数。 我知道如何通过减去行之间或列之间的日期来获得天数,但是在这种情况下,我需要减去列之间和行之间的日期(对角线)
df <- data.table(id = c("A", "A", "A", "B", "B", "B", "C", "C"),
admission_date = as.Date(c("2017-01-01", "2017-02-01", "2017-05-01", "2017-01-01", "2017-05-01", "2017-10-01", "2017-01-01", "2017-02-01")),
discharge_date = as.Date(c("2017-01-04", "2017-02-05", "2017-05-06", "2017-01-03", "2017-05-09", "2017-10-04", "2017-01-06", "2017-02-01")))
我希望得到这样的结果:
df <- data.table(id = c("A", "A", "A", "B", "B", "B", "C", "C"),
admission_date = as.Date(c("2017-01-01", "2017-02-01", "2017-05-01", "2017-01-01", "2017-05-01", "2017-10-01", "2017-01-01", "2017-02-01")),
discharge_date = as.Date(c("2017-01-04", "2017-02-05", "2017-05-06", "2017-01-03", "2017-05-09", "2017-10-04", "2017-01-06", "2017-02-01")))
DayReadmission <- c("NA", "28", "85", "NA", "118", "145", "NA", "26")
我刚刚开始使用 R,并尝试了各种建议。但是,它们都不符合我的需求。
【问题讨论】:
-
您正在寻找
lag。