R return 中的日期函数错误年份
date functions in R return wrong year
我正在尝试将字符字段转换为日期字段,其选项是使用 strptime
函数或 as.Date
函数。这是两个可重现的例子:
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"
为什么函数将年份从 2015 年更改为 2020 年?相反,我格式化我的日期字符串并使用它工作的 as.Date 函数。这是我所做的:
as.Date(c("2015/5/13"))
而且效果很好。
有什么想法吗?
我强烈推荐 lubridate
进行日期转换
library(lubridate)
mdy("5/13/2015")
# [1] "2015-05-13"
您的日期格式字符串应使用大写字母 "Y",以捕获带世纪的完整日期,例如“2015”。小写 "y" 用于捕获两位数的年份,如“2015”在 shorthand 中写为“15”。在您原来的情况下, strptime
和 as.Date
函数错误地将“2015”中的“20”解释为两位数的年份。更正版本:
strptime(c("5/13/2015"),"%m/%d/%Y")
"2015-05-13 EDT"
我正在尝试将字符字段转换为日期字段,其选项是使用 strptime
函数或 as.Date
函数。这是两个可重现的例子:
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"
为什么函数将年份从 2015 年更改为 2020 年?相反,我格式化我的日期字符串并使用它工作的 as.Date 函数。这是我所做的:
as.Date(c("2015/5/13"))
而且效果很好。
有什么想法吗?
我强烈推荐 lubridate
进行日期转换
library(lubridate)
mdy("5/13/2015")
# [1] "2015-05-13"
您的日期格式字符串应使用大写字母 "Y",以捕获带世纪的完整日期,例如“2015”。小写 "y" 用于捕获两位数的年份,如“2015”在 shorthand 中写为“15”。在您原来的情况下, strptime
和 as.Date
函数错误地将“2015”中的“20”解释为两位数的年份。更正版本:
strptime(c("5/13/2015"),"%m/%d/%Y")
"2015-05-13 EDT"