r - 与 lubridate 的时差(以年为单位)?

标签 r lubridate

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

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

这给了我他们的天数。

最佳答案

这是lubridate我会采取的方法:

interval(dob, today) / years(1)

产生32的答案年。

请注意,该函数会提示它无法表达一年中的剩余部分。这是因为年份不是一个固定的概念,即闰年为 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 - 与 lubridate 的时差(以年为单位)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32312925/

相关文章:

r - 为什么 `select_if(., is_double)` 返回日期?

r - 将日期时间转换为格式化的时间字符串

r - 从分组数据中选择两个随机且连续的行

r - 将英镑符号添加到 ggplot

r - 计算R中每月的星期五或星期一的数量

r - 润滑时区处理

r - 使用 lubridate 和 if 语句进行日期操作

r - SAS Proc 单变量和 R 分位数函数的不同结果

r - 根据另一个列表从 csv 文件生成子表

r - 为数据帧中的每个组创建长度为 n 的重复数