我很难理解为什么会这样:
a<-c(1.1,1.2,1.3)
b<-c(2.1,2.3,2.6)
c<-c(1.6,2.3,2.6)
mean<-rowMeans(matrix(c(a,b,c),ncol=3))
mean #### This are the mean values
[1] 1.600000 1.933333 2.166667
mean(a[1],b[1],c[1]) #### trying to calculate the mean of 1.1 ,2.1 and 1.6
[1] 1.1 #### Why is this not 1.6??
答案 0 :(得分:14)
R的争论匹配让你感到高兴:
> mean(9999,2,3,4,5)
[1] 9999
help(mean)
说:
Usage:
mean(x, ...)
然后说它计算x
的平均值并将...
传递给其他方法。在我的示例中,9999之后的所有数字都以点 - 点形式捕获。
R然后调用mean.default
,因为9999只是一个数字,mean.default
对点 - 点参数没有任何作用,包括错误,如果有任何内容他们。
您可以使用它为函数调用添加任意无用的东西:
> mean(c(1,2,3,4), monkeys=TRUE)
[1] 2.5
答案 1 :(得分:5)
您对mean
中mean(a[1],b[1],c[1])
的来电仅对第一个元素进行操作,即mean(a[1])
。你需要像这样连接a[1],b[1],c[1]
:
> mean(c(a[1],b[1],c[1]))
[1] 1.6
答案 2 :(得分:0)
Mabye你的问题是你的矩阵被转置? 试试这个:
mean<-rowMeans(matrix(c(a,b,c),ncol=3, byrow=T))