Lo complicado de los meses
¿Qué debería devolver ymd("2018-01-31") + months(1)? ¿Deberían ser 30, 31 o 28 días en el futuro? Pruébalo. En general, lubridate devuelve el mismo día del mes en el mes siguiente, pero como el 31 de febrero no existe, lubridate devuelve un valor ausente, NA.
Existen operadores alternativos de suma y resta: %m+% y %m-% que tienen un comportamiento diferente. En lugar de devolver NA para una fecha inexistente, retroceden hasta la última fecha válida.
Vas a explorar su comportamiento intentando generar una secuencia con el último día de cada mes de este año.
Este ejercicio forma parte del curso
Trabajar con fechas y horas en R
Instrucciones del ejercicio
Hemos puesto jan_31, la fecha del 31 de enero de este año, en tu espacio de trabajo.
- Empieza creando una secuencia de 1 a 12 períodos de 1 mes.
- Suma
month_seqajan_31. Fíjate en qué pasa en cualquier mes donde no exista el día 31 - Ahora suma
month_seqajan_31usando el operador%m+%. - Prueba a restar
month_seqdejan_31usando el operador%m-%.
Ejercicio interactivo práctico
Prueba este ejercicio y completa el código de muestra.
# A sequence of 1 to 12 periods of 1 month
month_seq <- ___
# Add 1 to 12 months to jan_31
___ + ___
# Replace + with %m+%
___ ___ ___
# Replace + with %m-%
___ ___ ___