| 名称名称名称|日期|| - -|- -|| A级|一九九○年十月七日|| B|一九九七年十一月二十日|我想添加age列,以便将日期转换为年龄我试过这个
data$age <- age_calc(as.Date(data$dob, "%Y/%m/%d"), units = "years")
但我得到了这个错误
Error in if (any(enddate < dob)) { : missing value where TRUE/FALSE needed
clj7thdc1#
错误的格式是您提供给as.Date函数的格式
as.Date
> df$age <- age_calc(as.Date(df$Date, "%Y-%m-%d"), units = "years") > df Name Date age 1 A 1990-10-7 32.15342 2 B 1997-11-20 25.03288
请注意,您的Date变量使用-而不是/作为分隔符,因此您必须在as.Date中使用-
Date
-
/
h7appiyu2#
我建议安装和调用lubridate包。然后道:数据$年龄〈- trunc((数据$日期%--%今天())/年(1))
svmlkihl3#
看起来age_calc()函数需要一个dob(出生日期)和一个enddate(结束日期)参数,但它没有同时接收到这两个参数。这可能就是为什么你会看到关于缺少值的错误消息的原因。要解决这个问题,您需要确保dob和enddate参数都提供给age_calc()函数。例如,您可以使用下面的代码根据每个人的出生日期和当前日期计算数据中每个人的年龄:
data$age <- age_calc(as.Date(data$dob, "%Y/%m/%d"), as.Date(Sys.Date()), units = "years")
或者,您可以提供特定的结束日期给age_calc()函数,而不使用目前的日期。这样您就可以根据特定的结束日期而不是目前的日期来计算数据中每个人的年龄。我希望这对你有帮助!
3条答案
按热度按时间clj7thdc1#
错误的格式是您提供给
as.Date
函数的格式请注意,您的
Date
变量使用-
而不是/
作为分隔符,因此您必须在as.Date
中使用-
h7appiyu2#
我建议安装和调用lubridate包。
然后道:
数据$年龄〈- trunc((数据$日期%--%今天())/年(1))
svmlkihl3#
看起来age_calc()函数需要一个dob(出生日期)和一个enddate(结束日期)参数,但它没有同时接收到这两个参数。这可能就是为什么你会看到关于缺少值的错误消息的原因。
要解决这个问题,您需要确保dob和enddate参数都提供给age_calc()函数。例如,您可以使用下面的代码根据每个人的出生日期和当前日期计算数据中每个人的年龄:
或者,您可以提供特定的结束日期给age_calc()函数,而不使用目前的日期。这样您就可以根据特定的结束日期而不是目前的日期来计算数据中每个人的年龄。
我希望这对你有帮助!