计算R中的加权几何平均值

时间:2018-04-20 14:39:29

标签: r

有没有办法计算R中的加权几何平均值?

我知道rogiersbart / rtoolz对Devtools软件包有一个扩展,所以你可以使用这个函数:

weighted.geomean(x, w, ...)

不幸的是,我无法使用此扩展程序。那么还有另一种计算R中加权几何平均值的方法吗?也许手动?

1 个答案:

答案 0 :(得分:1)

您引用的{{3}}具有该函数中使用的源代码,因此您可以轻松地在代码中重用它。为了完整起见,作者将weighted.geomean定义为:

weighted.geomean <- function(x, w, ...)
{
  return(prod(x^w, ...)^(1/sum(w)))
}

另一种在数学上等效的版本是:

weighted.geomean <- function(x, w, ...) exp(weighted.mean(log(x), w, ...))

一旦您运行了上述任一块,您现在已经定义了一个计算加权平均值的函数。您可以通过运行命令

将其用作示例数据
myvariable <- c(1,2,3,4) ##Some data to average
myweight <- c(1,1,1,3)   ##Weights
weighted.geomean(myvariable, myweight)
# [1] 2.696012