如果大于x,则将值更改为列中的NaN

时间:2014-11-21 02:37:44

标签: r nan

R初学者。

来自相对湿度传感器的数据发生故障并产生超过100的值并需要转换为NaN。任何帮助表示赞赏!我应该使用ifelse吗?

此代码hive1.1 [hive1.1 $ int_h> 100]< - NaN产生此错误:

[<-.data.frame*tmp*,hive2.1 $ int_h&gt; 100,value = NaN)出错:   数据帧的下标分配中不允许缺少值

2 个答案:

答案 0 :(得分:1)

您需要更好地关注作业:

 hive1.1[hive1.1$int_h > 100, "int_h"] <- NaN 

或者:

  is.na(hive1.1[ , 'int_h"])  <- hive1.1$int_h > 100

您的代码并未将分配限制在感兴趣的列中。

答案 1 :(得分:0)

我仍在猜测你的数据,但也许这就是:

hive1.1$int_h <- ifelse(hive1.1$int_h > 100, NA, hive1.1$int_h)

单词中,检查值是否为&gt; 100,如果是这样,用NA替换它,不是,不管它(或者更严格地说,用它自己替换它)。见?ifelseifelse被矢量化,因此它按顺序对每个值进行操作。