我试图运行以下if语句,其中两个if语句将显示"Y“,否则返回"N”。但是,我得到了以下错误: if (data.joined$**actual goods issue date**i > data.joined$**target date**i) {:缺失值中的错误,其中TRUE/FALSE需要
for(i in 1:nrow(data.joined)){
if(data.joined$`actual goods issue date`[i] > data.joined$`target date`[i]) {
data.joined$late.delivery.test[i] <- "Y"
} else if(is.na(data.joined$`actual goods issue date`[i]) == TRUE && today() > data.joined$`target date`[i]) {
data.joined$late.delivery.test[i] <- "Y"
} else {
data.joined$late.delivery.test[i] <- "N"
}
}发布于 2021-01-21 03:39:34
您可以使用if_else:
library(dplyr)
library(lubridate)
data.joined <- data.joined %>%
mutate(late.delivery.test = if_else(`actual goods issue date` > `target date` |
(is.na(`actual goods issue date`) & today() > `target date`), 'Y', 'N'))使用R基:
data.joined <- transform(data.joined,
late.delivery.test = ifelse(`actual goods issue date` > `target date` |
(is.na(`actual goods issue date`) & Sys.Date() > `target date`), 'Y', 'N'))https://stackoverflow.com/questions/65819506
复制相似问题