Saltar al contenido

Cómo extraer el mes de la fecha en R

Posteriormente a mirar en diferentes repositorios y sitios finalmente hemos descubierto la solución que te mostramos más adelante.

Solución:

?month estados:

La fecha y la hora deben ser objetos POSIXct, POSIXlt, Date, Period, chron, yearmon, yearqtr, zoo, zooreg, timeDate, xts, its, ti, jul, timeSeries y fts.

Su objeto es un factor, ni siquiera un vector de caracteres (presumiblemente debido a stringsAsFactors = TRUE). Tienes que convertir tu vector a alguna clase de fecha y hora, por ejemplo para POSIXlt:

library(lubridate)
some_date <- c("01/02/1979", "03/04/1980")
month(as.POSIXlt(some_date, format="%d/%m/%Y"))
[1] 2 4

También hay una función de conveniencia. dmyque puede hacer lo mismo (consejo propuesto por @Henrik):

month(dmy(some_date))
[1] 2 4

Yendo aún más lejos, @IShouldBuyABoat da otra pista de que los formatos de caracteres dd/mm/yyyy se aceptan sin ninguna conversión explícita:

month(some_date)
[1] 2 4

Para obtener una lista de formatos, consulte ?strptime. Encontrará que "formato unívoco estándar" significa

Los formatos predeterminados siguen las reglas del estándar internacional ISO 8601 que expresa un día como "2001-02-28" y una hora como "14:01:02" usando ceros a la izquierda como aquí.

Sin necesidad de un paquete externo:

si su fecha está en el siguiente formato:

myDate = as.POSIXct("2013-01-01")

Luego para obtener el número de mes:

format(myDate,"%m")

Y para sacar el mes string:

format(myDate,"%B")

puede convertirlo en formato de fecha por-

new_date<- as.Date(old_date, "%m/%d/%Y")} 

de new_datepuede obtener el mes por strftime()

month<- strftime(new_date, "%m")

old_date<- "01/01/1979"
new_date<- as.Date(old_date, "%m/%d/%Y")
new_date
#[1] "1979-01-01"
month<- strftime(new_date,"%m")
month
#[1] "01"
year<- strftime(new_date, "%Y")
year
#[1] "1979"

Si eres capaz, tienes la libertad de dejar un tutorial acerca de qué le añadirías a este tutorial.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *