У меня есть некоторые сомнения по поводу високосных годов, как я могу быть уверен, что при использовании такой формулы
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.