我正在尋找一種方法來派生年齡將準確處理出生日期= 2月29日。我已經嘗試使用lubridate
包裝上的new_interval
功能,但是對於2004年2月29日出生的孩子,該功能在2006年2月28日將返回2歲。該孩子將於2006年3月1日兩歲。
我也試過使用decimal_date
函數,但是當date = 01-Jan-2006時,這給我一個錯誤。派生年齡其中DOB = 2月29日
我,使用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
或年齡計算將讚賞。
謝謝!
公約。在新西蘭,法律規定第二十八條適用於合法成年人。 (該軟件包的作者來自新西蘭) – mnel 2013-03-18 21:18:16