我正在寻找一种方法来得出年龄,以准确处理出生日期 = 2 月 29 日。我尝试使用包装new_interval
上的功能 lubridate
,但是对于 2004 年 2 月 29 日出生的孩子,这将返回 2006 年 2 月 28 日的 2 岁年龄。孩子将于 2006 年 3 月 1 日满 2 岁。
我也尝试过使用该decimal_date
函数,但是当 date = 01-Jan-2006 时出现错误。
我正在使用 R 版本 2.15.3 (2013-03-01)——“安全毯”
这是我的代码:
library (lubridate)
MyTable <- data.frame(Eval.Date = c(as.Date("2006-01-01"),
as.Date(0:5, origin = "2006-02-26")),
Birth.Date = as.Date("2004-02-29"))
MyTable$Age <- floor(new_interval(MyTable$Birth.Date, MyTable$Eval.Date) /
duration(num = 1, units = "years"))
MyTable$DecDate <- decimal_date(MyTable$Eval.Date)
MyTable[,c("Birth.Date","Eval.Date","Age","DecDate")]
输出:
Birth.Date Eval.Date Age DecDate
1 2004-02-29 2006-01-01 1 NaN
2 2004-02-29 2006-02-26 1 2006.153
3 2004-02-29 2006-02-27 1 2006.156
4 2004-02-29 2006-02-28 2 2006.159
5 2004-02-29 2006-03-01 2 2006.162
6 2004-02-29 2006-03-02 2 2006.164
7 2004-02-29 2006-03-03 2 2006.167
帮助decimal_date
或年龄计算将不胜感激。
谢谢!