• Saltar al contenido principal
  • Saltar a la barra lateral principal

Estadísticamente

Aprende Estadística, R y Python

  • Contacto
  • Newsletter

Crear una Secuencia de Fechas en R

18 junio, 2020 por Javier Mendoza 2 comentarios

Vamos a seguir trabajando con fechas en R. En el día de hoy, vamos a suponer que quieres crear una secuencia de fechas en R, por ejemplo, un vector con los días que hay dentro de un mes, o un vector que contenga los meses dentro de un año, o incluso, un vector que almacene los días que hay entre dos fechas dadas.

Podemos utilizar la función seq de R para calcular la secuencia, especificando una fecha de comienzo, una fecha de final y el incremento de avance desde la fecha inicial hasta la fecha final.

Veamos un ejemplo:

s <- as.Date("2012-01-01")
e <- as.Date("2012-02-01")

Obtener días entre dos fechas con R

A continuación, vamos a utilizar el comando seq para obtener el detalle de todos los días que hay entre las dos fechas dadas en el párrafo anterior:

seq(from=s, to=e, by=1)

[1] "2012-01-01" "2012-01-02"
"2012-01-03" "2012-01-04" "2012-01-05"
"2012-01-06" "2012-01-07" "2012-01-08"
"2012-01-09" "2012-01-10" "2012-01-11"
"2012-01-12" "2012-01-13" "2012-01-14"
"2012-01-15" "2012-01-16" "2012-01-17"
"2012-01-18" "2012-01-19" "2012-01-20"
"2012-01-21" "2012-01-22" "2012-01-23"
"2012-01-24" "2012-01-25" "2012-01-26"
"2012-01-27" "2012-01-28" "2012-01-29"
"2012-01-30" "2012-01-31" "2012-02-01"

Una alternativa para obtener secuencias de fechas en R es utilizar el comando length.out en lugar de utilizar una fecha fin. Vamos a verlo también con diversos ejemplos:

  • Obtener el primer día del mes durante 12 meses / 1 año:
seq(from=s, by="month", length.out=12)

[1] "2012-01-01" "2012-02-01" "2012-03-01"
"2012-04-01" "2012-05-01" "2012-06-01"
"2012-07-01" "2012-08-01" "2012-09-01"
"2012-10-01" "2012-11-01" "2012-12-01"
  • Obtener la fecha de los próximos 4 trimestres:
seq(from=s, by="3 months", length.out=4)

[1] "2012-01-01" "2012-04-01"
"2012-07-01" "2012-10-01"
  • Obtener el primer día del mes durante 12 meses / 1 año:
seq(from=s, by="month", length.out=12)

[1] "2012-01-01" "2012-02-01" "2012-03-01"
"2012-04-01" "2012-05-01" "2012-06-01"
"2012-07-01" "2012-08-01" "2012-09-01"
"2012-10-01" "2012-11-01" "2012-12-01"
  • El primer día de cada año durante una década:
seq(from=s, by="year", length.out=10)

[1] "2012-01-01" "2013-01-01"
"2014-01-01" "2015-01-01" 
"2016-01-01" "2017-01-01"
"2018-01-01" "2019-01-01"
"2020-01-01" "2021-01-01"

Ten cuidado cuando utilices este tipo de comandos de secuencias en R, pues si estás cerca del final del mes, puede darte problemas:

seq(as.Date("2010-01-29"), by="month", len=3)

[1] "2010-01-29" "2010-03-01" "2010-03-29"

Publicado en: Programar en R

Interacciones con los lectores

Comentarios

  1. Franklin Chiluisa dice

    1 julio, 2020 a las 02:40

    Estimados tengo esta base y quiero filtrar las fechas desde marso 13 del 2020 en adelante y que al graficar en el eje x me aparezca la etiqueta de datos con la fecha
    mytimeseries= ts(data=mydata$HC,start =2020, frequency = 365)
    plot(mytimeseries)

    ï..Fecha
    HC
    1 1/1/2019 3
    2 2/1/2019 1
    3 3/1/2019 2
    4 6/1/2019 2
    5 8/1/2019 3
    6 10/1/2019 15
    7 11/1/2019 5

    Responder
  2. Anónimo dice

    7 diciembre, 2022 a las 16:38

    llegue 2 años tarde para responderte jaja

    Responder

Deja una respuesta Cancelar la respuesta

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

· Javi Mendoza © 2023 ·