2017-03-16 122 views
0

我是R的新手,但是在发布之前我已经搜索了很多这方面的内容,因为在google和stackoverflow中有很多结果。从dob计算R的年龄

我的数据框有3041行和几列,DDN是葡萄牙语的出生日期。

我已经尝试了其他主题的所有这些解决方案,但没有任何这些工作。

Age <- function(dob, age= today(), units = "years", floor = TRUE) { 
      calc.age = new_interval(DDN, idade)/duration(num = 1, units = units) 
      if (floor) return(as.integer(floor(calc.age))) 
      return(calc.age)} 


Age <- as.Date (P4PA$DDN) 

P4PA$Idade <- floor(age_calc(P4PA$DDN, units = "years")) 

Age <- as.numeric(format(as.Date(Sys.time()),format="%Y"))-as.numeric(format(as.Date(DDN,format="%m/%d/%Y"),format="%Y")) 

yourdata$age <- floor(age_calc(yourdata$birthdate, units = "years")) 

age = function(from, to) { 
from_lt = as.POSIXlt(from) 
to_lt = as.POSIXlt(to) 

age = to_lt$year - from_lt$year 

ifelse(to_lt$mon < from_lt$mon | 
    (to_lt$mon == from_lt$mon & to_lt$mday < from_lt$mday), 
    age - 1, age) 
} 

And this: http://blog.jsonbecker.com/2013/06/calculating-age-in-r.html 
head(P4PA) 
    DDN 
4/22/1956 
12/26/1964 
4/16/1963 
1/28/1970 
7/15/1972 
1/18/1956 
class(P4PA$DDN) 
"factor" 

我需要从该柱3041点的观测计算年龄,但我无法弄清楚如何。我尝试将DDN类更改为数字,但出现带有错误的消息。我真的不知道该做什么了。我认为这很容易。

谢谢

回答

2

首先,从the blog post复制和粘贴功能age_calc给您链接到你的[R控制台(或RStudio控制台)并点击“Enter”键储存。

该函数需要3个参数:dob,enddate和units。参数dob需要属于类Date。单位可以是几天,几个月或几年。假设你想要年,这应该在你的数据框中添加一列age

P4PA$age <- age_calc(as.Date(P4PA$DDN, "%m/%d/%Y"), units = "years") 

P4PA 
     DDN age 
1 4/22/1956 60 
2 12/26/1964 52 
3 4/16/1963 53 
4 1/28/1970 47 
5 7/15/1972 44 
6 1/18/1956 61 
+0

谢谢你的回答! –