我正在尝试将一个字符字段转换为一个日期字段,该日期字段的选项将使用strptimefunction或as.Datefunction。这是两个可重现的示例:
strptime(c("5/13/2015"),"%m/%d/%y")
#result is "2020-05-13 MST"
as.Date(c("5/13/2015"), format = "%m/%d/%y")
#result is "2020-05-13"
Run Code Online (Sandbox Code Playgroud)
为什么职能从2015年更改为2020年?如果相反,我格式化日期字符串并使用as.Date函数起作用。这是我所做的:
as.Date(c("2015/5/13"))
Run Code Online (Sandbox Code Playgroud)
而且效果很好。
有什么想法吗?
您的日期格式字符串应使用大写字母“ Y”,以大写的日期表示整个世纪,例如“ 2015”。小写的“ y”用于捕获两位数字的年份,就像“ 2015”的简写为“ 15”一样。在您的原始情况下,strptime和as.Date函数错误地将“ 2015”中的“ 20”解释为两位数年份。更正的版本:
strptime(c("5/13/2015"),"%m/%d/%Y")
"2015-05-13 EDT"
Run Code Online (Sandbox Code Playgroud)