2013-05-15 92 views
4

如上所述,任何人都知道发生了什么?`意思不是产生正确的答案

m1 <- 0.457842055395572 
m2 <- 0.587127416942505 
sum(m1, m2)/2 
mean(m1, m2) 

输出:

> m1 <- 0.457842055395572 
> m2 <- 0.587127416942505 
> sum(m1, m2)/2 
[1] 0.5224847 
> mean(m1, m2) 
[1] 0.4578421 

重新启动的R和仍然是相同的。在R 3.0 x86 Windows上。

回答

7

mean是一个S3函数,它接受一个主要参数,它是单个R对象(通常是一个向量)的量,其他参数通过...传递给其他方法。在这里它们被传递到mean.default,它有两个额外的命名参数,trimna.rm。因此,您的第二个值将被解释为修剪量(尽管您无法修整单个值)。

你要输入的内容是:

mean(c(m1, m2)) 
[1] 0.5224847 
+0

哦,对了,我的哦,我,这样一个根本的错误。 – JackeJR

+1

'mean.default'实际上有三个命名参数,这意味着这里m2被默默地解释为'trim';现在_这太危险了。 – baptiste

+0

@baptiste好点,谢谢。我已经更新了答案,以考虑到这一点。 – James