r - las - que significa olv en mexico
Convertir una abreviatura de mes en un mes numérico, en R (2)
Como month.abb es una constante del sistema, ¿por qué no usar:
match("jan", tolower(month.abb))
# [1] 1
mo2Num <- function(x) match(tolower(x), tolower(month.abb))
mo2Num(c("jan", "JAN", "Feb", "junk") )
#[1] 1 1 2 NA
Si desea ver el resto de la cantidad relativamente pequeña de "constantes del sistema", vaya a
`?Constants`
El texto de ejemplo implica que estos deben estar en el idioma asociado con su configuración regional (aunque no puedo decir con autoridad cuál sería la configuración regional. Un enfoque alternativo podría haber sido extraer el número de mes después de la conversión a un objeto POSIXlt Este enfoque requiere recordar que el número del mes está basado en 0, por lo que deberá agregar 1 en esta instancia.
Estoy tratando de escribir una función para convertir abreviaturas de mes de 3 letras a valores numéricos en R.
Esto es lo que tengo, me preguntaba si hay una mejor manera de hacer esto:
numMonth <- function(x) {
months <- list(jan=1,feb=2,mar=3,apr=4,may=5,jun=6,jul=7,aug=8,sep=9,oct=10,nov=11,dec=12)
x <- tolower(x)
sapply(x,function(x) months[[x]])
}
numMonth(c(''JAN'',''DEC''))
Usar vectorización, es decir:
numMonth<-function(x)
c(jan=1,feb=2,mar=3,apr=4,may=5,jun=6,jul=7,aug=8,sep=9,oct=10,nov=11,dec=12)[tolower(x)]