计算两个对象的平均值

时间:2018-02-15 15:04:30

标签: r mean

假设我们在开头有两个对象:

floor_date

如果我们在每个中应用mean()函数,我们得到:

ceiling_date

......这绝对正常。

如果我创建一个合并a和b的新对象......

a <- c(2,4,6)
b <- 8

并计算其平均值......

> mean(a)
[1] 4
> mean(b)
[1] 8

...我们得到5,这是期望值。

但是,我想同时计算两个对象的平均值。我试过这种方式:

c <- c(2,4,6,8)

正如我们所看到的,它的值与预期的正确值(5)不同。我错过了什么?

2 个答案:

答案 0 :(得分:7)

如上所述,正确的解决方案是在将向量传递给mean之前将其连接起来:

mean(c(a, b))

原始代码给出错误结果的原因是mean的第二个参数是:

 ## Default S3 method:
 mean(x, trim = 0, na.rm = FALSE, ...)

因此,当使用两个数字参数调用mean时,第二个参数将作为trim参数传递,而参数控制how much trimming将被完成。在您的情况下,8会导致函数简单地返回中位数(trim的有意义值将是0到0.5之间的分数。)

答案 1 :(得分:0)

如果您打印要加入a,b功能的参数mean,您将看到仅打印a
print(a,b) [1] 2 4 6

因此mean(a,b)仅提供a的平均值。 mean(c(a,b))将产生5的预期答案。