2011-04-21 60 views
7

快速的問題。我將我的csv文件讀入變量data。它有一個列標籤var,它有數值。獲得「NA」當我運行一個標準偏差

當我運行命令

sd(data$var) 

我得到

[1] NA 

,而不是我的標準偏差。

能否請你幫我找出我做錯了嗎?

回答

22

嘗試sd(data$var, na.rm=TRUE),然後在列VAR任何NAS會被忽略。還將支付檢查你的數據,以確保NA的應該是NA的,有沒有在錯誤被讀取,像head(data)tail(data)命令和str(data)應與幫助。

+0

就是這樣。謝謝! – evt 2011-04-21 04:34:41

+3

我添加了'str()'給你的答案,因爲我發現它對這些調試任務有幫助,但並不認爲這是它自己的答案。希望你不介意,隨時回滾。 – Chase 2011-04-21 04:34:49

+2

'彙總(數據)'可能是查看數據中是否存在「NA」的最簡單方法。 – 2011-04-21 07:39:37

5

你可能有遺漏值在var,或列不是數值,或有隻有一行。

嘗試刪除缺失值,這將有助於在第一種情況:

sd(dat$var, na.rm = TRUE) 

如果不工作,檢查

class(dat$var) 

是「數字」(第二種情況),以及

nrow(dat) 

大於1(第三種情況)。

最後,data被設定爲R所以最好的功能,使用不同的名字,這是我在這裏所做的。沒關係。