如果日期向量有两位数的年份,则将mdy()
00 和 68 之间的年份转换为 21 世纪年份,将 69 和 99 之间的年份转换为 20 世纪年份。例如:
library(lubridate)
mdy(c("1/2/54","1/2/68","1/2/69","1/2/99","1/2/04"))
给出以下输出:
Multiple format matches with 5 successes: %m/%d/%y, %m/%d/%Y.
Using date format %m/%d/%y.
[1] "2054-01-02 UTC" "2068-01-02 UTC" "1969-01-02 UTC" "1999-01-02 UTC" "2004-01-02 UTC"
我可以通过从不正确的日期中减去 100 将 2054 和 2068 变成 1954 和 1968 来解决这个问题。但是有没有一种更优雅、更不容易出错的方法来解析两位数的日期,以便在解析过程本身?
更新:在@JoshuaUlrich 向我指出后,strptime
我发现了这个问题,它处理的问题与我的类似,但使用的是基础 R。
似乎 R 中日期处理的一个很好的补充是在日期解析函数中处理两位数日期的世纪选择截止值。