R 润滑。出了什么问题?

R lubridate. What goes wrong?

试图做出一个迄今为止的因素。

X:

Jul-15
Jul-15
Jul-15
Jul-15
Aug-16

我想将它们转换为日期。

X <- as.Date(Xx, format="%b-%y")

结果为 NA。

这是我的代码来源:https://www.r-bloggers.com/date-formats-in-r/

as.Date 是基础 R 函数,as_date 是 lubridate 函数,但这不是你的问题

没有一天,您就没有完全指定日期。与年份不同,R 将填写当前年份,这似乎不会发生缺失的一天

作为解决方法,运行:

X <- as.Date(paste0(Xx,'-01'), format="%b-%y-%d")

这会将日期设置为每月的第一天

zoo 包中的 yearmon 函数将在此处为您提供帮助。由于您将 lubridate 作为问题的标签,我们可以使用 lubridate 包中的 as_date 将其转换为日期对象。基本功能 as.Date 也可以使用。

library(zoo)  
library(lubridate)

as_date(as.yearmon(Xx, "%b-%y"))

[1] "2015-07-01" "2015-07-01" "2015-07-01" "2015-07-01" "2016-08-01"

如果你想将它们保留为 yearmon class,你可以 运行:

 as.yearmon(Xx, "%b-%y")

[1] "Jul 2015" "Jul 2015" "Jul 2015" "Jul 2015" "Aug 2016"

您需要一个完整的日期,日期为:

library(lubridate)
X <- "Jul-15"
X <- paste("01", X, sep="-")
dmy(X)