2014-11-21 51 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是矢量化的,所以它按順序對每個值進行操作。

相關問題