所以我有這樣的載體:平均函數
x
[1] 76 89 78 50 84 56 29 53 32 68
112 Levels: 0 1 10 100 101 102 103 104 105 106 107 108 109 11 110 12 13 ... eta
爲什麼出現這種情況?
[1] NA
Warning message:
In mean.default(x) : l'argomento non è numerico o logico: restituisco NA
所以我有這樣的載體:平均函數
x
[1] 76 89 78 50 84 56 29 53 32 68
112 Levels: 0 1 10 100 101 102 103 104 105 106 107 108 109 11 110 12 13 ... eta
爲什麼出現這種情況?
[1] NA
Warning message:
In mean.default(x) : l'argomento non è numerico o logico: restituisco NA
看起來像x
是一個因素。將因素轉換爲數字時有一個問題。您需要使用:
mean(as.numeric(as.character(x)), na.rm=TRUE)
如果不轉換爲字符首先,你將得到根本因素代碼。
Holy ####確實是一個難題!太棒了! – user3083324
貌似x
是分類變量 - 嘗試
mean(as.numeric(as.character(x)))
(根據詹姆斯指出,如果沒有as.character
,你得到的因素代碼:
x <- as.factor(10:20)
as.numeric(x)
[1] 1 2 3 4 5 6 7 8 9 10 11
自從離開了na.rm=TRUE
,雖然更安全,但不會導致問題)
謝謝!我如何知道我是在處理分類變量還是數值變量? – user3083324
是什麼給了它的印刷'x'給你的水平。 'R'通常會將「數字」的東西解析爲數值變量,但我猜測這個矢量被切分了一些以消除其中的一些。如果你檢查原始矢量,我敢打賭,你會發現一些不是「數字」的東西。 – colcarroll
使用'str(your_object)'來查看存儲的模式。 –
除了更改爲數值之外,當使用mean
函數時,請確保指定na.rm=TRUE
以防在向量中有NA
值。否則,它會顯示您看到的警告。
嘗試翻譯錯誤消息:「該參數既不是數字也不是邏輯,用N/A替換」。 – Floris
您可以使用[this]將語言設置爲英語(http://stackoverflow.com/questions/13575180/how-to-change-the-language-of-errors-in-r) – agstudy