缺少值的条件陈述

时间:2018-12-23 10:01:22

标签: r

我有一个数据框q。在一个for循环中,我尝试在diff不是'no'的情况下打印mnt_for的值。

我收到此消息: if(!q $ diff [j] ==“ no”){时出错   缺少需要TRUE / FALSE的值

如何处理我最感兴趣的价值缺失案例

for(j in 1:nrow(q)) {

  if (!q$diff[j]=='no'){
    print(q[j,6])
  }

} 


    res_id        lud snow_mountain snow_mountain mnt mnt_for diff
67    3822 2018-02-12           160           160 160     160   no
68    3822 2018-02-13            NA            NA 162     160 <NA>
69    3822 2018-02-14            NA            NA 163     160 <NA>

2 个答案:

答案 0 :(得分:2)

替代解决方案可能是

print(q[!q$diff %in% c(NA,"no"),6])

答案 1 :(得分:1)

使用此:

 for(j in 1:nrow(q)) {
   if (!is.na(q$diff[j]) & !q$diff[j]=='no'){
      print(q[j,6])
   }
 }

中间可能需要一个双&&,很难在没有样本数据的情况下进行测试