【发布时间】:2018-08-24 18:57:03
【问题描述】:
我的一段代码有问题。我想执行加权平均值,但如果我自己计算加权平均值,我得到的值不是我得到的值。
我是这样编码加权平均值的:
weighted.mean(x = dataset$A[rows], weights = weights)
变量是“dataset$A”,我用于加权平均值的行列在“rows”中(有 2 行)。权重列在“权重”中。
这是我自己计算的方式:
dataset$A_MEAN[rows[1]]*weights[1] + dataset$A_MEAN[rows[2]]*weights[2]
为什么这两行代码有区别? 我尝试了以下值:
dataset$A = [45792.76, 64984.67]
weights = [0.3253927, 0.6746073]
第一行代码返回:55388.71 第二行代码返回:58739.76
非常感谢!我敢肯定这是一件小事,但它让我发疯了!
【问题讨论】:
-
注意R是矢量化的,你的总和可以写成
sum(dataset$A[rows] * weights)。
标签: r weighted-average