如何计算 R 中 qwraps2 库中的加权平均值?

How can I calculated the weighted mean in the qwraps2 library in R?

我正在使用 qwraps2 库生成摘要 table。在编写我的汇总统计列表时,我有:

summary1 <-
  list("Wage" =
         list("min"       = ~ min(WAGE),
              "max"       = ~ max(WAGE),
              "mean (sd)" = ~ qwraps2::mean_sd(WAGE)))

这是手册中的标准设置。但是,我想计算加权平均值,然后计算标准差。有没有办法通过 qwraps2 或其他命令/库来做到这一点?

编辑

假设下面是 5 个人的数据框,他们的时薪和他们在数据集中的权重(出于抽样目的,因为我正在处理 CPS 数据)。

library(qwraps2)

person <- c(1, 2, 3, 4, 5)
wage <- c(20, 25, 30, 35, 40)
weight <- c(1, 1.5, 2, 2.5, 3)

dfa <- as.data.frame(cbind(person, wage, weight))
dfa

算术平均值(在 qwraps2 中计算)为 30: arithmetic mean

加权平均值(我想在 summary1 中计算的是 32.5: weighted mean

summary1 <-
  list("Wage" =
         list("min"       = ~ min(wage),
              "max"       = ~ max(wage),
              "mean (sd)" = ~ qwraps2::mean_sd(wage)))

output <-summary_table(dfa, summary1)
output

在这里,平均值的输出是 30(使用 qwraps2),这是算术平均值。但是,我希望输出是 32 的加权平均值。希望对您有所帮助!

有一个 base R weighted.mean 确实给出了预期的输出

summary1 <-
  list("Wage" =
         list("min"       = ~ min(WAGE),
              "max"       = ~ max(WAGE),
             "mean (sd)" = ~ weighted.mean(WAGE, weight)))
output <- summary_table(dfa, summary1)
output

\begin{tabular}{l|l}
\hline
 & dfa (N = 5)\
\hline
\bf{Wage} & ~\
\hline
~~ min & 20\
\hline
~~ max & 40\
\hline
~~ mean (sd) & 32.5\
\hline
\end{tabular}