在没有NA的情况下将因子转换为年 - 月日期格式

时间:2017-12-04 18:31:57

标签: r date

前言

我已经完成了Stack Overflow的研究,并发现了几个类似的问题。但是,我的情况完全不同:

date<-factor(c('1990-01','1991-01','1991-02','1992-01'))

注意我只有年份和月份,我想将date转换为日期格式。

问题

以下是我根据其他SO帖子的答案所做的事情:

date<-as.Date(as.character(data), '%Y-%m')
date

但是,我得到了NA s。

我该如何解决这个问题? (最好不要使用其他软件包,例如zooanytime

提前谢谢!如果我的问题清楚且值得问我,请告诉我。

1 个答案:

答案 0 :(得分:1)

替代方法是使用ymd包中的lubridate。如果你有很多行,它可能会更快。

以下是您有yyyy-mm格式的一百万个随机日期:

x <- as.character(Sys.Date()-sample(40000, 1e6, TRUE))
x <- str_sub(x, 1, str_length(x)-3)

as.Date的时间。

system.time({
  x1 <- as.Date(paste0(x,"-01"))
})
   user  system elapsed 
   7.91    0.00    7.95 

ymd的{​​{1}}相比。

lubridate