if else语句比较0或NA

use*_*224 0 if-statement r

我在数据帧tmp中有一个元素,可能包含数字,0或NA.如果该元素既不是0也不是NA,我想要发生一些事情.否则,没有任何反应.我想它看起来像这样:

  if ( tmp[2, 19] != (0 || NA) ){  
              do something
              } 
Run Code Online (Sandbox Code Playgroud)

我收到此错误:if(tmp [2,19] ==(0 || NA)){:缺少值需要TRUE/FALSE时出错.我不知道在R中是否不可能将某些东西与int和字符串进行比较,或者我只是使用OR运算符错误.我在不同情况下尝试了不同的变化,但无法确定问题.请帮忙!

Jos*_*ich 6

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

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

你可以通过阅读?"if"和自己发现这一点?NA.