【问题标题】:How can I calculated the weighted mean in the qwraps2 library in R?如何计算 R 中 qwraps2 库中的加权平均值?
【发布时间】:2021-09-09 03:48:23
【问题描述】:

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

【问题讨论】:

  • @akrun 我已附上编辑。我希望他们能帮助解决问题
  • 为什么不能使用"mean (sd)" = ~ weighted.mean(WAGE, weight)))
  • 您能否查看下面发布的解决方案。谢谢

标签: r summary weighted-average qwraps2


【解决方案1】:

有一个 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}

【讨论】:

  • 谢谢!它解决了这个问题。我试图使用 qwraps2 因为它在括号中给出了平均值和标准差。但是,我可以手动/
猜你喜欢
  • 2012-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-04
  • 1970-01-01
  • 1970-01-01
  • 2016-06-05
  • 1970-01-01
相关资源
最近更新 更多