R 有没有办法解决ifelse语句中的日期问题?

R 有没有办法解决ifelse语句中的日期问题?,r,R,我试图求解一个日期,以便在ifelse语句中查找的参数为true,从而使true输入为日期。我很难用语言表达我想做的事情,但基本上,当有人被雇佣时,以及他们出生时,我都有。我需要找出他们工作多久+他们多大的年龄加起来是79岁 我已经用了两种不同的方法编写了ifelse代码,但错误在于要解决占位符变量的问题 library(lubridate) hire_date <- ymd("1982-02-02") birth_date <- ymd("1967-02-02") retir

我试图求解一个日期,以便在ifelse语句中查找的参数为true,从而使true输入为日期。我很难用语言表达我想做的事情,但基本上,当有人被雇佣时,以及他们出生时,我都有。我需要找出他们工作多久+他们多大的年龄加起来是79岁

我已经用了两种不同的方法编写了ifelse代码,但错误在于要解决占位符变量的问题

library(lubridate)

hire_date <- ymd("1982-02-02")

birth_date <- ymd("1967-02-02")

retire <- 1

test <- data.frame(hire_date, birth_date, retire)

test$pension4 <- ifelse(test$retire == 1, ifelse(((
as.duration(ymd(x) %--% test$hire_date / dyears(1))) + (as.duration(ymd(x)
%--% test$birth_date / dyears(1)))) == 79, x, NA), NA)
库(lubridate)

hire_date
测试样本数据在这里会非常有用,可能是
dput(head(retiredonly))
以及您期望从这个样本数据中得到的值。@r2evans并不确定如何使用dput,但我添加了虚拟数据并解释了我希望得到的答案。
dput
提供了明确的数据,我们可以“立即”使用它没有猜测。您的数据是错误的,不幸的是,请小心提供您正在使用的代码。在这种情况下,
1982-02-02
解析为
1978
,因为R将其视为减法。(或者这真的是你的问题吗?)?