Создать последовательность последнего дня месяца в течение двух лет

Я использовал lubridate и решил, что это будет так просто

ymd("2010-01-31")+months(0:23)

Но посмотрите, что получается. Это все запутано!

 [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"

Затем я читаю, как lubridate учитывает такие явления, как интервал, продолжительность и период. Итак, хорошо, я понимаю, что месяц на самом деле - это количество дней, определяемое ( 365 * 4 + 1) / 48 = 30,438 дней. Поэтому я попытался переписать его как

ymd("2010-01-31")+ as.period(months(0:23))

, но это только выдало ошибку.

 Ошибка в as.period.default (месяцы (0:23)) : Объект 
 (список) нельзя принудительно ввести 'double' 
 
37
задан zx8754 1 February 2017 в 09:03
поделиться