繁体   English   中英

R 如何转换日期格式

[英]R How to convert date format

我正在寻找将以下字符串转换为日期格式:

string <- '22APR2020'
date <- as.Date(string, format='%d%b%y')
date
>>> NA

不幸的是,结果是NA ,我需要将其转换为日期,以便能够计算两个日期之间的时间。

谢谢

您可以anytime使用 package:

library(anytime)
string <- '22APR2020'
anytime::anydate(string)
[1] "2020-04-22"

问题是您的语言环境设置。 它可能设置为第四个月不缩写为“APR”的语言。

Sys.setlocale("LC_TIME", "French")

string <- '22APR2020'
as.Date(string, format='%d%b%Y')
#[1] NA

Sys.setlocale("LC_TIME", "German")
as.Date(string, format='%d%b%Y')
#[1] "2020-04-22"

另外,请注意格式字符串中使用了大写的Y 这一点很重要。 y仅指十年(偶然会在 2020 年给出相同的结果,但在 2021 年给出错误的结果)。

如有疑问,请始终使用lubridate

string <- '22APR2020'
library(lubridate)
dmy(string)
[1] "2020-04-22"

这里 dmy 是日期、月份和年份出现的顺序。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM