如果我出于某种原因将日期10.10.61(DD.MM.YY)as.Date(date, format="%d.%m.%y")转换为2061 -10-10。
有没有一种优雅的方法来纠正这个问题,还是我必须通过切割字符串并在前面添加“19”来手动完成?
我也试过zoo包,它带来了相同(错误)的结果。
x = format(as.Date("10.10.61", "%d.%m.%y"), "19%y-%m-%d")
x = as.Date(x)
x
class(x)
Run Code Online (Sandbox Code Playgroud)
请注意,singlesub将分割字符串并在年份前面加上 19,因此它不会那么繁重:
as.Date(sub("(..)$", "19\\1", date), "%d.%m.%Y")
## [1] "1961-10-10"
Run Code Online (Sandbox Code Playgroud)
chron或者,chron 包默认的截止值为 30,因此默认情况下它将使用 1961:
library(chron)
as.Date(dates(date, format = "d.m.y"))
## [1] "1961-10-10"
Run Code Online (Sandbox Code Playgroud)
"chron.year.expand"在 chron 中,年份扩展规则由默认设置为函数的选项定义year.expand,该函数的默认cut.off值为 30。有关更多信息,请参阅此 SO 帖子:
将正确的世纪添加到日期,年份提供为“没有世纪的年份”,% y
| 归档时间: |
|
| 查看次数: |
7613 次 |
| 最近记录: |