문제

d <-c("1948/05/28","1952/03/27","1994/12/09")
as.Date(d)
[1] "1948-05-28" "1952-03-27" "1994-12-09"
as.Date("2014-03-20")
[1] "2014-03-20"
as.Date("2014-03-20")-as.Date(d)
Time differences in days
[1] 24037 22638  7041
(as.Date("2014-03-20")-as.Date(d))/365
Time differences in days
[1] 65.85479 62.02192 19.29041

I use (as.Date("2014-03-20")-as.Date(d))/365 to get the years between them ,is there more formal way to do that?

도움이 되었습니까?

해결책

Try this to ensure that it picks days as the unit. Also 365.25 is slightly better than 365 due to leap years:

as.numeric(difftime(as.Date("2014-03-20"), as.Date(d), unit = "days")) / 365.25

다른 팁

lubridate::as.interval() addresses exactly that.

This is a more efficient modification of G. Grothendieck's answer:

(as.integer(as.Date("2014-03-20")) - as.integer(as.Date(d))) / 365.25
라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top