R 与0或NA比较的If-else语句

R 与0或NA比较的If-else语句,r,if-statement,R,If Statement,我在数据帧tmp中有一个元素,它可能包含数字、0或NA。如果该元素既不是0也不是NA,我希望发生一些事情。否则,什么也不会发生。我想是这样的: if ( tmp[2, 19] != (0 || NA) ){ do something } 我得到了这个错误:if中的错误(tmp[2,19]==(0 | | NA)){:缺少需要TRUE/FALSE的值。我不知道在R中是否无法将某个值与int和字符串进行比较,或者我只是使用了or运算

我在数据帧tmp中有一个元素,它可能包含数字、0或NA。如果该元素既不是0也不是NA,我希望发生一些事情。否则,什么也不会发生。我想是这样的:

  if ( tmp[2, 19] != (0 || NA) ){  
              do something
              } 

我得到了这个错误:if中的错误(tmp[2,19]==(0 | | NA)){:缺少需要TRUE/FALSE的值。我不知道在R中是否无法将某个值与int和字符串进行比较,或者我只是使用了or运算符。我在不同的情况下尝试了不同的变体,但无法确定问题所在。请帮助!

正如@GSee在评论中所说,您需要使用
is.na

if(tmp[2, 19] != 0 || is.na(tmp[2, 19])) {  
  # do stuff
}

您可以通过阅读
?“如果”
?NA

如@GSee在评论中所说,您需要使用
is.NA

if(tmp[2, 19] != 0 || is.na(tmp[2, 19])) {  
  # do stuff
}
您可以通过阅读
?“if”
?NA
来发现这一点