我在一段代码上遇到麻烦。我想执行加权均值,但是如果我自己计算加权均值,我得到的值不是我获得的值。
这是我编码加权均值的方式:
weighted.mean(x = dataset$A[rows], weights = weights)
变量是“ dataset $ A”,我用于加权平均值的行在“行”中列出(有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
非常感谢!我确定这是次要的事情,但这让我发疯了!
答案 0 :(得分:1)
检查您对weighted.mean
的使用
参数weights
应该为w
:
weighted.mean(x = dataset$A[rows], w = weights)
应该给您您想要的东西。
在调用函数时,可以通过使用?weighted.mean