在R中没有正确计算平均值?

Hea*_*oes 2 average r

我很难理解为什么会这样:

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)

  • 卑鄙的猴子...... :) (3认同)

nru*_*ell 5

您对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)

  • 另外,创建一个与函数同名的对象也不是一个好主意. (2认同)