Я проверял здесь, чтобы найти подобную проблему, и я не мог видеть, хотя я видел то же самое сообщение об ошибке.
Допустим, у меня есть данные:
temp = data.frame(ID = c(1:5),
Pl = c("11","12",NA,"14",NA), Pl2 = c("11","11","12","14","14"))
ID Pl Pl2
1 11 11
2 12 11
3 <NA> 12
4 14 14
5 <NA> 14`
И я хотел создать четвертый столбец с условиями:
- Если
Pl1
== Pl2
, то желаемый результат будет 0
для четвертого столбца
- Если
Pl1
== NA
, то желаемый результат будет NA
для четвертого столбца
- для условий, которые должны быть логически, где
Pl1
! = Pl2
,
тогда желаемый результат - 1
для четвертого столбца.
В конце концов, я пришел с этим кодом, который я получил сообщение об ошибке:
for (i in nrow(temp)){
if (temp[i,2] == temp[i,3]) {
temp[i,4] = "0"
} else if (is.na(temp[i,2])) {
temp[i,4] = NA
} else (temp[i,4] = "1")
}
Error in if (temp[i, 2] == temp[i, 3]) { :
missing value where TRUE/FALSE needed
Так что я не вижу никакой синтаксической / операторской ошибки, но может быть какая-то логическая вещь?