“缺少值需要TRUE / FALSE”在R中的if语句中出错

时间:2015-02-12 10:09:36

标签: r function variables local variable-declaration

我正在尝试计算并打印我的数据框的第二和第三列中的值命名为' DATA'的情况。 但是我缺少了需要TRUE / FALSE的值"错误。

你能帮帮我吗?如何在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)  
}

1 个答案:

答案 0 :(得分:3)

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]))