if else语句比较0或NA

时间:2012-07-09 18:54:15

标签: 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运算符错误。我在不同情况下尝试了不同的变化,但无法确定问题。请帮忙!

1 个答案:

答案 0 :(得分:7)

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

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

您可以通过阅读?"if"?NA来自己发现这一点。