我对R(从SPSS迁移过来)非常陌生。我在运行Mavericks的苹果电脑上使用RStudio。请用两个音节的词回答我的问题,因为这是我第一次真正尝试这样的事情。我已经完成了一些基本的教程,可以在所有的样本数据上工作。
我有一个大约有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所以,即使我移除了NAs,它们似乎也没有被移除。我被搞糊涂了。
发布于 2014-08-14 07:20:06
你好,新手,不幸的是有几个错误...让我们逐一解决它们:
> 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 is区分大小写==================================================================================
> data_Apr_Jun$hold_time[data_Apr_Jun$hold_time=="NA"]<-0正如我在这里指出的那样,R不允许与NA进行比较:Something weird about returning 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平均值(由colMeans计算)没有意义。
希望通过这些提示可以理解/解决剩下的问题。你已经意识到了一件非常重要的事情:
使用R!你在正确的轨道上!
发布于 2017-05-30 07:58:01
不幸的是,as.numeric进行了隐式强制,这会导致错误的答案。不要在因素上暗示它。
https://stackoverflow.com/questions/25297705
复制相似问题