【问题标题】:changing year of date for multiple observations [duplicate]更改多个观察的日期年份[重复]
【发布时间】:2020-10-16 01:28:26
【问题描述】:

我正在处理日期数据。以下是样本数据:

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

有人知道我怎样才能让它工作吗?

【问题讨论】:

    标签: r date lubridate


    【解决方案1】:

    如果您有没有世纪的年份,则从 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"
    

    【讨论】:

      猜你喜欢
      • 2018-04-05
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多