R lubridate。出了什么问题?

时间:2017-07-18 13:46:05

标签: r lubridate as.date

试图制作一个迄今为止的因素。

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/

3 个答案:

答案 0 :(得分:2)

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

没有一天,你没有完全指定日期。与年份相比,R将在当前年度填写,这似乎不会发生在缺失的一天

作为解决方法,请运行:

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

将日期设置为该月的第一天

答案 1 :(得分:0)

yearmon包中的zoo功能可以帮助您。由于您在问题上有lubridate作为标记,因此我们可以使用as_date包中的lubridate将其转换为日期对象。基函数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"

如果你想把它们留作年级,你可以运行:

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

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

答案 2 :(得分:0)

你需要一个完整的约会日期:

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