2

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

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: 算术平均值

加权平均值(我要计算的summary1是 32.5: 加权平均值

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 的加权平均值。我希望这会有所帮助!

4

1 回答 1

0

有一个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}
于 2021-06-25T21:37:10.223 回答