Select 之前观察的日期并将其输入到 R 中的新列中

Select date from a previous observation and input it into a new column in R

我正在处理病人的健康记录,并试图从第一次就诊中找到最后一次就诊,下面是数据框:-

patient_id  admit_date
P1          05/1/2015 
P2          09/10/2015
P1          08/5/2015
P1          09/10/2015
P2          12/1/2015

输出应该是:-

patient_id  admit_date  last_visit
P1          05/1/2015    NA
P2          09/10/2015   NA
P1          08/5/2015    05/1/2015
P1          09/10/2015   08/5/2015
P2          12/1/2015    09/10/2015

我正计划使用 dplyr 方法:-

raw_data %>% 
  group_by(patient_id) %>% mutate(last_visit= )

我在变异部分需要一些指导。

首先,将日期格式转换为正确的日期,然后使用lag返回一个时间段:

library(dplyr)

rawdata %>% group_by(patient_id) %>%
            mutate(admit_date = as.Date(admit_date, format = "%d/%m/%Y"), 
                   last_visit = lag(admit_date))

Source: local data frame [5 x 3]
Groups: patient_id [2]

  patient_id admit_date last_visit
      (fctr)     (date)     (date)
1         P1 2015-01-05       <NA>
2         P2 2015-10-09       <NA>
3         P1 2015-05-08 2015-01-05
4         P1 2015-10-09 2015-05-08
5         P2 2015-01-12 2015-10-09

你的日期不明确 - 如果你有 d-m-y 这是正确的,否则将格式参数更改为 "%m/%d/%y"