【问题标题】:condtional statement with missing values [duplicate]缺少值的条件语句[重复]
【发布时间】:2018-12-23 10:01:22
【问题描述】:

我有一个数据框 q。在 for 循环中,我试图在 diff 不是“否”的条件下打印 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>

【问题讨论】:

  • 当我将您的数据与diff 作为一个因素时,一切似乎都工作正常(没有错误)。你能在同样的三行中添加dput吗?
  • 应该可以工作:!q$diff[j] == "no" || is.na(q$diff[j])

标签: r


【解决方案1】:

另一种解决方案可能是

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

【讨论】:

    【解决方案2】:

    使用这个:

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

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

    【讨论】:

      猜你喜欢
      • 2014-02-18
      • 2014-09-22
      • 2016-12-08
      • 2013-03-21
      • 2016-01-04
      • 2016-02-05
      • 2018-05-21
      • 2021-05-27
      • 2014-01-09
      相关资源
      最近更新 更多