如果R中的字段为NA,则将difftime计算为系统日期
非常简单,我想计算任期,如果员工被任命,那么我希望新字段返回任期。日期-用于计算任期的Job.Entry.Date。否则,如果员工处于活动状态,则我希望新字段返回Sys.Date-Job.Entry.Date 使用以下代码:如果R中的字段为NA,则将difftime计算为系统日期,r,R,非常简单,我想计算任期,如果员工被任命,那么我希望新字段返回任期。日期-用于计算任期的Job.Entry.Date。否则,如果员工处于活动状态,则我希望新字段返回Sys.Date-Job.Entry.Date 使用以下代码: jobentrydat_alltechs$Tenure <-if (jobentrydat_alltechs$Term.Date == is.na) { return (difftime(Sys.Date(), jobentrydat_alltechs$Job.E
jobentrydat_alltechs$Tenure <-if (jobentrydat_alltechs$Term.Date == is.na) {
return (difftime(Sys.Date(), jobentrydat_alltechs$Job.Entry.Date, units = c("days")))
} else if (jobentrydat_alltechs$Term.Date != is.na) {
return (difftime(jobentrydat_alltechs$Term.Date, jobentrydat_alltechs$Job.Entry.Date, units = c("days")))
}
我得到以下错误
==.defaultjobentrydat_alltechs$Term.Date中的错误,is.na:
比较1仅适用于原子类型和列表类型
您需要ifelse而不是if,因为它是矢量化的,而且is.na是一个函数,不是一个要比较的值
jobentrydat_alltechs$Tenure <- ifelse(is.na(jobentrydat_alltechs$Term.Date),
difftime(Sys.Date(), jobentrydat_alltechs$Job.Entry.Date, units = c("days")),
difftime(jobentrydat_alltechs$Term.Date, jobentrydat_alltechs$Job.Entry.Date, units = c("days")))
请提供一个我尝试使用ifelse和is.najobentrydat_alltechs$Term.Date时遇到的错误。我发现我真正的错误是从if开始,然后是ifelse,而不是ifelse。谢谢