[英]mean( ,na.rm=TRUE) still returns NA
我是R的新手(從SPSS轉移)。 我在運行Mavericks的Mac上使用RStudio。 請用2個音節的單詞回答我的問題,因為這是我第一次真正嘗試這樣的事情。 我已經完成了一些基礎教程,可以使所有樣本數據都能正常工作。
我有一個64,000行和大約20列的數據集。 我想獲得變量“hold_time”的平均值,但無論我嘗試什么,我都會獲得NA或NA以及警告消息
我嘗試了以下所有方法:
> summary(data_Apr_Jun$hold_time,na.rm=TRUE)
5 6 7 4 8 2 1 3 10
9596 9191 3192 1346 1145 977 940 655 534
11 9 12 0 13 15 14 16 17
490 444 249 128 106 86 73 68 40
98 118 121 128 125 97 101 188 86
31 29 28 28 27 27 26 26 26
102 105 113 81 119 139 127 134 152
25 25 25 25 24 24 23 23 23
18 69 96 106 110 111 120 190 76
23 23 23 22 22 22 22 22 22
82 132 135 156 166 94 115 116 117
22 21 21 21 21 21 20 20 20
142 153 165 19 93 100 104 112 126
20 20 20 20 20 19 19 19 19
131 138 143 157 177 189 61 87 103
19 19 19 19 19 19 19 19 18
108 148 176 212 54 56 64 74 79
18 18 18 18 18 18 18 18 18
99 107 129 163 168 171 178 226 236
18 17 17 17 17 17 17 17 17
59 71 78 95 114 122 123 130 (Other)
17 17 17 17 16 16 16 16 2739
NA's
29807
> mean(as.numeric(data_Apr_Jun$hold_time,NA.rm=TRUE))
[1] NA
> data_Apr_Jun$hold_time[data_Apr_Jun$hold_time=="NA"]<-0
> mean(as.numeric(data_Apr_Jun$hold_time))
[1] NA
> mean(data_Apr_Jun$hold_time)
[1] NA
Warning message:
In mean.default(data_Apr_Jun$hold_time) :
argument is not numeric or logical: returning NA
> mean(as.numeric(data_Apr_Jun$hold_time,na.rm=TRUE))
[1] NA
> colMeans(data_Apr_Jun$hold_time)
Error in colMeans(data_Apr_Jun$hold_time) :
'x' must be an array of at least two dimensions
> colMeans(data_Apr_Jun)
Error in colMeans(data_Apr_Jun) : 'x' must be numeric
> mean(data_Apr_Jun$hold_time,na.omit)
[1] NA
Warning message:
In mean.default(data_Apr_Jun$hold_time, na.omit) :
argument is not numeric or logical: returning NA
因此,即使我刪除了NA,它們似乎也沒有被刪除。 我很沮喪。
你好Rnovice不幸有幾個錯誤......讓我們一個一個地解決它們:
> mean(as.numeric(data_Apr_Jun$hold_time,NA.rm=TRUE))
[1] NA
這是因為你以錯誤的方式使用na.rm
:它應該是
mean(as.numeric(data_Apr_Jun$hold_time),na.rm=TRUE)
na.rm
是一個mean
的參數,而不是as.numeric
(帶括號的注意事項) na.rm
R
區分大小寫 ================================================== ================================
> data_Apr_Jun$hold_time[data_Apr_Jun$hold_time=="NA"]<-0
R
不允許與NA
進行比較,因為我在這里指出: 返回NAs有點奇怪
你的意思是
data_Apr_Jun$hold_time[which(is.na(data_Apr_Jun$hold_time))] <- 0
還有一個評論=="NA"
與字符串"NA"
進行比較。 嘗試is.na("NA")
和is.na(NA)
來看看差異。
================================================== ================================
colMeans(data_Apr_Jun$hold_time)
Error in colMeans(data_Apr_Jun$hold_time) :
'x' must be an array of at least two dimensions
嘗試data_Apr_Jun$hold_time
,你會看到它返回一個向量。 這就是為什么一個colwise mean(由colMeans
計算)沒有意義的原因。
希望通過這些提示可以理解/解決其余問題。 你已經意識到的一個非常重要的事情:
用R! 你走在正確的軌道上!
不幸的是, as.numeric
會產生一種隱含的強制,導致錯誤的答案。 不要暗示它是因素。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.