有没有办法计算R中的加权几何平均值?
我知道rogiersbart / rtoolz对Devtools软件包有一个扩展,所以你可以使用这个函数:
weighted.geomean(x, w, ...)
不幸的是,我无法使用此扩展程序。那么还有另一种计算R中加权几何平均值的方法吗?也许手动?
答案 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