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