r - 将 %B.%Y 转换为 R 中的日期返回 NA

标签 r date datetime time-series

我有一个数据框,其中有一列包含日期内容(该列的数据类型是字符):'November.2017', 'April.2017', etc.

我尝试使用下面的代码转换它们以进行测试:

strptime(c('November.2017', 'April.2017'), format='%B.%Y')
zoo::as.yearmon(c('November.2017', 'April.2017'), '%B.%Y')
as.Date(c('November.2017', 'April.2017'), format='%B.%Y')

输出:

[1] NA NA
[1] "Nov 2017" "Apr 2017"
[1] NA NA

如您所见,只有zoo::as.yearmon解决了,任何人都可以帮忙找出为什么会发生这种情况吗?谢谢。

据我搜索,该问题似乎是由 time-zone 提出的,我跑Sys.setlocale('LC_TIME', 'English')在 Rstudio 上,它不起作用。

更新:

strptime(c('November.01.2017', 'April.01.2017'), format='%B.%d.%Y')
as.Date('November.01.2017', format="%B.%d.%Y")

输出:

[1] "2017-11-01 CST" "2017-04-01 CST"
[1] "2017-11-01"

最佳答案

一个选项也是parse_date

library(parsedate)
parse_date((c('November.2017', 'April.2017')))
[1] "2017-11-01 UTC" "2017-04-01 UTC"

输出是POSIXct类。可以用as.Date直接转换为Date

 as.Date(parse_date((c('November.2017', 'April.2017'))))
[1] "2017-11-01" "2017-04-01"

关于r - 将 %B.%Y 转换为 R 中的日期返回 NA,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/69543769/

相关文章:

Python 日期时间添加

mysql - dbConnect-R中的清理数据是否会改变真实数据库中的数据值

r - 使用 apply/like 函数自动进行统计分析

javascript - javascript Date 对象的参数与文档不同?

sql-server - 为什么在本地运行的应用程序与azure中会出现时间(UTC)差异?

c# - Convert.DateTime 抛出错误 : String was not recognized as a valid DateTime for "06-13-2012"

r - 从向量中查找文本中的匹配单词

r - 增加 y 轴上文本和标题之间的距离

hibernate - JPA 使用 ZoneOffset 存储 OffsetDateTime

javascript - Jquery 检查日期是否为当前日期或已过日期