我是R的新手,但在发布此处之前我已经搜索了很多这个主题,因为google和stackoverflow中有很多结果。
我的数据框有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类更改为数字,但会出现带有错误的消息。我真的不知道该怎么做了。我觉得这很容易。
谢谢
答案 0 :(得分:3)
首先,将the blog post中的函数age_calc
复制并粘贴到您的R控制台(或RStudio控制台)中,然后点击“输入”。存储它。
该函数有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