我创建了一个函数,可以将季度-年格式的向量强制转换为日期向量。
.quarter_to_date(c("Q1/13","Q2/14"))
[1] "2013-03-01" "2014-06-01"
这是我的函数代码。
.quarter_to_date <-
function(x){
ll <- strsplit(gsub('Q([0-9])[/]([0-9]+)','\\1,\\2',x),',')
res <- lapply(ll,function(x){
m <- as.numeric(x[1])*3
m <- ifelse(nchar(m)==1,paste0('0',m),as.character(m))
as.Date(paste(x[2],m,'01',sep='-'),format='%y-%m-%d')
})
do.call(c,res)
}
我的函数运行良好,但是它看起来很长并且有点复杂。我认为其他包(例如lubridate
)应该已经完成了这个功能。但我找不到它。请问是否有人能帮我简化这段代码呢?