【问题标题】:Coding weighted mean (R)编码加权平均值 (R)
【发布时间】: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


【解决方案1】:

检查您对weighted.mean的使用

参数weights 应该是w:

weighted.mean(x = dataset$A[rows], w = weights) 应该给你你想要的。

调用函数时,您可以通过阅读函数的文档?weighted.mean来确保使用正确的变量名

【讨论】:

  • 哦,我明白了。非常感谢!所以,如果我要将函数输入到 sapply 函数中,我也会用“w”来编写它,对吧?例如:new_values
  • 没问题。另外,作为参考,如果此答案或任何其他答案解决了您的问题,请将其标记为已接受。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-02-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-05-23
  • 1970-01-01
相关资源
最近更新 更多