2014-10-09 15 views
0

我是新來的同時使用R和lubridate,並試圖找出一組學生在註冊時的年齡。每個學生的出生日期我都有以下日期。在使用difftime註冊時查找年齡?

students_bd <- c("04/08/95", "02/23/95", "03/14/95", "12/11/95", "06/23/95", 
      "04/04/95", "08/24/95", "08/13/95", "09/20/95") 
students_bd <- as.Date(students_bd, "%m /%d /%y") 

此外,註冊日期爲08/04/2014。

註冊< - 「8月4日/ 2014」 Reg_Date < - as.Date(註冊, 「%M /%d /%Y」)

我試圖使用difftime獲得答案,但這隻能爲我提供天數的差異,而不是註冊時學生的年齡。在幾天的時間差

[1] -7058 -7102 -7083 -6811 -6982 -7062 -6920 -6931 -6893

什麼是最有效的方式,不僅得到答案,而且還要爲每個學生顯示ymd格式的年齡?

+0

你能接受答案,如果它是有用的,並關閉 – RUser 2014-10-10 00:45:09

回答

3
as.period(Reg_Date - students_bd, units = "year") 

    [1] "19y 0m 118d 6H 0M 0S" "19y 0m 162d 6H 0M 0S" "19y 0m 143d 6H 0M 0S" "18y 0m 236d 12H 0M 0S" 
[5] "19y 0m 42d 6H 0M 0S" "19y 0m 122d 6H 0M 0S" "18y 0m 345d 12H 0M 0S" "18y 0m 356d 12H 0M 0S" 
[9] "18y 0m 318d 12H 0M 0S" 
+1

你的第二個解決方案斷言,所有的學生都是19,但他們不是?您還可以使用:'as.period(Reg_Date-students_bd)@ year'從句點對象中提取'year'插槽。 – jlhoward 2014-10-09 06:06:21

+0

沒有注意到,謝謝 – RUser 2014-10-09 06:09:44