mam pewne wątpliwości lata przestępne, jak mogę być pewny, że za pomocą tej formuły jakJak rozliczyć lata przestępne?
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)
}
weźmie pod konto lat przestępnych, podczas dodawania na przykład 100 lat moim zbiorze obserwacji? Jak mogę to kontrolować?
Mam zestaw danych szeregów czasowych z 50 lat obserwacji:
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
zestawu danych + 100 lat
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
Po podstawowej czeku, zauważyłem, że liczba wierszy jest to samo dla oryginału i 100 lat po zestawie danych. Nie jestem pewien, czy to, co było przed 29. Februray w roku przestępnym, będzie teraz wartością obs na 1 marca w roku wolnym od skoku, itp.
Mogę sprawdzić lata przestępne korzystając z biblioteki chronologicznej funkcja leap.year, jednak chciałbym wiedzieć, czy jest prostszy sposób, aby to zrobić, aby upewnić się, że wiersze z dniami przejściowymi z dnia 29 lutego, które nie istnieją 100 lat po zostaną usunięte, i nowe dni z 29 lutego są dodawane z wartościami NA.
Mieszanie formatów "POSIXlt" i "Date" kończy się tylko w niezrozumiałych błędach i łzach. –
Potwierdzam! Lepiej poświęć trochę czasu na wyczyszczenie mojego kodu. Dzięki! –