utilizo lubridate y pensé que esto sería tan fácilGenerar una secuencia del último día del mes durante dos años
ymd("2010-01-31")+months(0:23)
Pero mira lo que se obtiene. ¡Está todo en mal estado!
[1] "2010-01-31 UTC" "2010-03-03 UTC" "2010-03-31 UTC" "2010-05-01 UTC" "2010-05-31 UTC" "2010-07-01 UTC" "2010-07-31 UTC" "2010-08-31 UTC" "2010-10-01 UTC"
[10] "2010-10-31 UTC" "2010-12-01 UTC" "2010-12-31 UTC" "2011-01-31 UTC" "2011-03-03 UTC" "2011-03-31 UTC" "2011-05-01 UTC" "2011-05-31 UTC" "2011-07-01 UTC"
[19] "2011-07-31 UTC" "2011-08-31 UTC" "2011-10-01 UTC" "2011-10-31 UTC" "2011-12-01 UTC" "2011-12-31 UTC"
Luego leo cómo lubridate atiende a fenómenos como el intervalo, la duración y el período. Entonces, bien, me doy cuenta de que un mes es realmente el número de días definidos por (365 * 4 + 1)/48 = 30.438 días. Así que traté de hacerlo inteligente y reescribirlo como
ymd("2010-01-31")+ as.period(months(0:23))
Pero eso acaba de dar un error.
Error in as.period.default(months(0:23)) : (list) object cannot be coerced to type 'double'
use 'strftime (date)' para deshacerse de la zona horaria. entonces 'strftime ('2010-10-31 UTC')' te daría '2010-10-31'. – Ramnath
¿Puedes aceptar tu respuesta también para la próxima pobre alma? –
@SachaEpskamp: Stackoverflow solo me permitirá aceptar mi respuesta después de dos días. Supongo que es bastante inteligente. Puede haber otra solución que sea más elegante. – Farrel