Ho creato una funzione che costringe un vettore di formato trimestrali a un vettore di date.Converti formato trimestre/anno in data
.quarter_to_date(c("Q1/13","Q2/14"))
[1] "2013-03-01" "2014-06-01"
Questo è il codice della mia funzione.
.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)
}
La mia funzione funziona bene ma sembra lunga e un po 'complicata. Penso che questo dovrebbe essere già fatto in altri pacchetti (lubridate
per esempio) Ma non riesco a trovarlo. Qualcuno può aiutarmi a semplificare questo codice, per favore?