Как учесть високосный год?

У меня есть некоторые сомнения по поводу високосных годов, как я могу быть уверен, что при использовании такой формулы

add.years= function(x,y){    
if(!isTRUE(all.equal(y,round(y)))) stop("Argument \"y\" must be an integer.\n")
x <- as.POSIXlt(x)
x$year <- x$year+y
as.Date(x)
}

она учтет високосные годы, когда добавит, например, 100 лет к моему набору данных наблюдений? Как я могу это контролировать?

У меня есть набор данных временного ряда с 50 годами наблюдений:

   date    obs
1995-01-01 1.0
1995-01-02 2.0
1995-01-03 2.5
...
2045-12-30 0.2
2045-12-31 0.1

dataset+100 лет

   date    obs
2095-01-01 1.0
2095-01-02 2.0
2095-01-03 2.5
...
2145-12-30 0.2
2145-12-31 0.1

После базовой проверки я заметил, что количество строк одинаково как для исходного набора данных, так и для набора через 100 лет. Я не уверен, что то, что было до 29 февраля в високосном году, теперь будет значением obs для 1 марта в невисокосном году и т.д.

Я могу проверить високосные годы, используя chron library функцию leap.year, однако я хотел бы знать, есть ли более простой способ сделать это, чтобы быть уверенным, что строки с проходными днями 29 февраля, которые не существуют через 100 лет, будут удалены, а новые дни 29 февраля будут добавлены со значениями NA.

15
задан Jaap 6 September 2017 в 13:38
поделиться