更改多次观察的日期年份

changing year of date for multiple observations

我正在处理日期数据。以下是示例数据:

id    dob  
1     8/2/48
2     12/13/34

我正在使用下面的代码将日期数据从 %m/%d/%y 转换为 y-m-d。

library(read_r)
df$new_dob <- parse_datetime(df$date_birth, "%m/%d/%y")

使用此代码,我获得了正确格式的数据,但年份不对。

id    dob        new_dob
1     8/2/48     2048-08-02
2     12/13/34   2034-12-13

应该是这样的:

id    dob        new_dob
1     8/2/48     1948-08-02
2     12/13/34   1934-12-13

有谁知道我如何让它工作?

当你有没有世纪的年份时,从 00 到 68 的所有年份都以 20 和 69 到 99 为前缀 19。对于这种情况,你可以在转换数据后减去 100 年。

library(lubridate)
as.Date(parse_date_time(df$dob, c('%d/%m/%y', '%m/%d/%y'))) - years(100)
#[1] "1948-08-02" "1934-12-13"