Tôi có một số nghi ngờ về tính năm nhuận, làm thế nào tôi có thể chắc chắn rằng bằng cách sử dụng một công thức như thế nàyLàm thế nào để tính toán cho năm nhuận?
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)
}
nó sẽ mất vào năm tài khoản bước nhảy vọt, khi thêm ví dụ 100 năm để tập dữ liệu quan sát của tôi? Làm thế nào tôi có thể kiểm soát điều này?
Tôi có một chuỗi thời gian tập dữ liệu với 50 năm quan sát:
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
bộ dữ liệu + 100 năm
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
Sau khi kiểm tra cơ bản, tôi đã nhận thấy rằng số hàng là tương tự cho cả bản gốc và 100 năm sau tập dữ liệu. Tôi không chắc chắn nếu những gì đã được trước khi Februray thứ 29 trong một năm nhuận sẽ là giá trị ám ảnh cho ngày 1 tháng 3 trong một năm không nhuận, v.v.
Tôi có thể kiểm tra năm nhuận sử dụng từ thư viện chron chức năng leap.year, tuy nhiên tôi muốn biết nếu có một cách đơn giản hơn để làm điều này, để đảm bảo rằng các hàng có ngày vượt qua ngày 29 tháng 2 không tồn tại 100 năm sau khi bị xóa và ngày mới của ngày 29 tháng 2 được thêm vào với các giá trị NA.
Việc trộn các định dạng 'POSIXlt' và' Date' sẽ chỉ kết thúc trong các lỗi và nước mắt mơ hồ. –
Tôi xác nhận! Tốt hơn dành chút thời gian để dọn sạch mã của tôi. Cảm ơn! –