"missing value where TRUE/FALSE needed" R 中的 if 语句错误
"missing value where TRUE/FALSE needed" Error in if statement in R
我正在尝试计算并打印数据框第二列和第三列中的值名为 'DATA' 的情况。
但是我有 "missing value where TRUE/FALSE needed" 错误。
你能帮帮我吗?如何在 if 语句中写入条件而不出现此错误?
我的代码:
deneme<-function(id=vector()){
i<-1
counter<-1
sulfate<-DATA[,2]
nitrate<-DATA[,3]
while (DATA[i,4] == DATA[i+1,4]){
if(DATA[i,2] != NA & DATA[i,3] != NA){
counter<-counter+1
}
i<-i+1
}
print(counter)
}
当DATA[i,2]
为NA
时,比较也是NA
:
NA != NA
#[1] NA
您需要使用函数 is.na
来测试您是否有 NA
值:
!is.na(NA)
#[1] FALSE
因此,您应该将代码行更改为:
if(!is.na(DATA[i,2]) & !is.na(DATA[i,3]))
我正在尝试计算并打印数据框第二列和第三列中的值名为 'DATA' 的情况。 但是我有 "missing value where TRUE/FALSE needed" 错误。
你能帮帮我吗?如何在 if 语句中写入条件而不出现此错误?
我的代码:
deneme<-function(id=vector()){
i<-1
counter<-1
sulfate<-DATA[,2]
nitrate<-DATA[,3]
while (DATA[i,4] == DATA[i+1,4]){
if(DATA[i,2] != NA & DATA[i,3] != NA){
counter<-counter+1
}
i<-i+1
}
print(counter)
}
当DATA[i,2]
为NA
时,比较也是NA
:
NA != NA
#[1] NA
您需要使用函数 is.na
来测试您是否有 NA
值:
!is.na(NA)
#[1] FALSE
因此,您应该将代码行更改为:
if(!is.na(DATA[i,2]) & !is.na(DATA[i,3]))