我想用lubridate给出他们的出生日期和今天的日期来计算年龄。现在我有这个:

library(lubridate)
today<-mdy(08312015)
dob<-mdy(09071982)
today-dob

这给了我几天的年龄。

最佳答案

这是我要采用的lubridate方法:

interval(dob, today) / years(1)

产生32年的答案。

请注意,该函数将抱怨它无法表示该年剩余时间。这是因为年份不是固定的概念,即leap年为366,非-年为365。您可以获得有关周数和天数的更详细的答案:
interval_period = interval(dob, today)
full_year = interval_period %/% years(1)
remaining_weeks = interval_period %% years(1) %/% weeks(1)
remaining_days = interval_period %% years(1) %% weeks(1) %/% days(1)
sprintf('Your age is %d years, %d weeks and %d days', full_year, remaining_weeks, remaining_days)
# [1] "Your age is 32 years, 51 weeks and 1 days"

请注意,我使用%/%进行除法,并使用%%取模,以减去整年/周后的剩余周/天。

关于r - 时效润滑脂的时差?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/32312925/

10-12 19:21