更改多次观察的日期年份
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"
我正在处理日期数据。以下是示例数据:
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"