【问题标题】:Using is.na() and !is.na() in if statements在 if 语句中使用 is.na() 和 !is.na()
【发布时间】:2018-10-21 16:04:55
【问题描述】:

所以我正在尝试创建一个循环,该循环根据我的数据框第 4 列中存在的值读取输入文件。

    for (idx in 1:nrow(config_path_test)) {
         if (config_path_test[idx,2] == "ens84" & is.na(config_path_test[idx,4])) 
         {#process Raw data}

         else {
            if(config_path_test[idx,2] == "ens84" & !is.na(config_path_test[idx,4]))
              {#process TPM data}
              }

测试了我的代码,第 4 列包含所有字段中我的数据的路径,任何字段中没有路径或两者的组合(有些有路径,有些没有)。

上面的代码成功地处理了所有字段和没有字段。 但是,对于两者的结合,我有点卡住了。

由于不存在路径被反映为 NA 的整个列,我一直在使用:

   is.na() and !is.na()

但是,两者的组合不会显示缺失值的 NA。字段为空白。

知道如何更改我的代码来处理空白字段吗?或者关于如何将空白值处理为 NA 的任何想法?

提前致谢

【问题讨论】:

    标签: r


    【解决方案1】:

    如果我对问题的理解正确,您阅读的文件中有一些 ("") 字段,您希望将其转换为 NA?如果是这种情况,请在您的函数之外执行以下操作:

    df[df == ""] <- NA
    

    请检查以确保它不是类似的东西,例如 (" ")。这个thread 你可能也感兴趣。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-10-10
      • 2017-03-17
      • 2013-07-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多