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"
Franklin Chiluisa dice
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
Anónimo dice
llegue 2 años tarde para responderte jaja