سؤال

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