У меня есть некоторые сомнения относительно високосных лет, как я могу быть уверен, что, используя формулу вроде этого
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-го февраля в високосном году, будет теперь общепринятым для 1 марта в не-високосный год и т.д.
Я могу проверить високосные годы, используя chron library функцию leap.year, однако я хотел бы знать, есть ли более простой способ сделать это, чтобы убедитесь, что строки с пропущенными днями 29-го февраля, которые не существуют 100 лет спустя, будут удалены, а новые дни 29 февраля добавлены с значениями NA.