Doğum tarihini doğru bir şekilde işlemek için yaş 29 Şubat. işlevini lubridate
paketinde kullanmayı denedim, ancak 29 Şubat 2004 doğumlu bir çocuk için bu, 28 Şubat 2006'da 2 yaşında bir yaş döndürüyor. Çocuk, 01-Mar-2006'da 2 yaşında olacaktır.
Ayrıca decimal_date
işlevini kullanmayı denedim, ancak bu tarih = 01-Ocak-2006 olduğunda bana bir hata veriyor.Derive Age nerede DOB = 29 Feb
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")]
Çıktı:
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
Yardım - Ben R versiyonu 2.15.3 kullanıyorum
(2013-03-01) "Güvenlik Battaniye" İşte
benim kodudur decimal_date
ile ya da yaş hesaplama takdir edilecektir.
Teşekkürler!
Sözleşmeleri. NZ'de yasal olarak gelişmekte olan 28'inin kullanılması yasallaştırılmıştır. (paket yazar NZ'den) – mnel