假设我们在开头有两个对象:
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)不同。我错过了什么?
答案 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的预期答案。