Frage

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?

War es hilfreich?

Lösung

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

Andere Tipps

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
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top