生年月日=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
または年齢計算のいずれかで助けていただければ幸いです。
ありがとう!