我已经完成了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。
我该如何解决这个问题? (最好不要使用其他软件包,例如zoo
,anytime
)
提前谢谢!如果我的问题清楚且值得问我,请告诉我。
答案 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