Puede utilizar la incorporada en el vector month.abb
para comprobar contra al convertir a un número, por ejemplo:
mm <- c("Jan","Dec","jan","Mar","Apr")
sapply(mm,function(x) grep(paste("(?i)",x,sep=""),month.abb))
Jan Dec jan Mar Apr
1 12 1 3 4
El constructo grep toma cuidado de las diferencias en capitalización. Si eso no es necesario,
match(mm,month.abb)
funciona igual de bien.
Si también tiene un día y la columna de un año, puede utilizar cualquiera de las funciones de conversión, utilizando los códigos apropiados (véase también ?strftime
)
por ejemplo
mm <- c("Jan","Dec","jan","Mar","Apr")
year <- c(1998,1998,1999,1999,1999)
day <- c(4,10,3,16,25)
dates <- paste(year,mm,day,sep="-")
strptime(dates,format="%Y-%b-%d")
[1] "1998-01-04" "1998-12-10" "1999-01-03" "1999-03-16" "1999-04-25"
Crédito adicional: dar una respuesta que funciona si sus abreviaturas mes no están en Inglés! (por ejemplo, "Jan", "Fev", "Mar", "Avr", "Mai", ...) [Sugerencia: probablemente puedas hacer esto cambiando temporalmente la configuración regional de tu sistema y usando 'as.Date' con' % b' format ...] –