我很难理解为什么会这样:
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??
Run Code Online (Sandbox Code Playgroud)
Spa*_*man 14
R的参数匹配引起了你的注意:
> mean(9999,2,3,4,5)
[1] 9999
Run Code Online (Sandbox Code Playgroud)
help(mean) 说:
Usage:
mean(x, ...)
Run Code Online (Sandbox Code Playgroud)
然后说它计算平均值x并传递...给其他方法.在我的示例中,9999之后的所有数字都被捕获在点 - 点中.
R然后调用,mean.default因为9999只是一个数字,并且mean.default对点 - 点 - 点参数没有任何作用,包括错误,如果它们中有任何内容.
您可以使用它为函数调用添加任意无用的东西:
> mean(c(1,2,3,4), monkeys=TRUE)
[1] 2.5
Run Code Online (Sandbox Code Playgroud)
您对meanin的调用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
Run Code Online (Sandbox Code Playgroud)