2014-11-21 27 views
-2

R初学者在这里。如果大于x,则将列中的值更改为NaN

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

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

错误[<-.data.frame*tmp*,hive2.1 $ int_h> 100,值= NAN): 缺少值不会在数据的下标分配允许框架

+0

使用'NA'而不是'NaN'。如果这不能解决问题,请给我们一些您的数据和您正在使用的命令。使用'dput(head(your_object))'并将其粘贴到问题中。 – 2014-11-21 02:41:02

+0

'NaN'不是'数字',通常保留为未定义的返回值,虽然它比这更复杂一点。 “NA”仅仅意味着“不可用”,即没有数字。 – 2014-11-21 02:54:04

+0

显然你没有看到我留在[你的其他问题]可重复的示例链接(http://stackoverflow.com/questions/27052543/how-to-convert-0s-to-nans-in-certain-columns-的非数据帧,在-R) – 2014-11-21 03:01:32

回答

1

你需要关注你的任务更好:

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

或者:

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

您的代码不限制对感兴趣列的分配。

0

我还在猜测一下自己的数据,但也许这:

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

在口头上,检查值> 100,如果是这样,与NA取代它,它不是,它离开单独(或者更严格地说,用它自己替代它)。见?ifelseifelse是矢量化的,所以它按顺序对每个值进行操作。

相关问题