gpt4 book ai didi

r - 如何使用 dplyr 计算两个分组变量的加权平均值

转载 作者:行者123 更新时间:2023-12-03 03:16:34 25 4
gpt4 key购买 nike

我知道这一定非常简单,但我很难找到正确的 dplyr 命令来执行此操作。假设我想按两个变量对数据集进行分组,然后汇总每行的计数。为此,我们只需:

mtcars %>% group_by(cyl, mpg) %>% summarize(Count = n())

这将为三个变量 cylmpgCount 生成一个包含 27 行的数据帧。接下来我想做的是总结三个 cyl 值中每一个的平均 mpg 。请记住,每行可能包含大于 1 的 Count,计算平均值时必须考虑这一点。我的数据框应该有 3 行,每行 2 个变量 cylAvg_mpg。有人能给我一个可以做到这一点的短代码吗?预先感谢您。

最佳答案

如果我理解正确,你需要weighted.mean

library(dplyr)
mtcars %>%
group_by(cyl, mpg) %>%
summarize(Count = n()) %>%
group_by(cyl) %>%
summarise(avg_mpg = weighted.mean(mpg, Count))

# A tibble: 3 x 2
# cyl avg_mpg
# <dbl> <dbl>
#1 4.00 26.7
#2 6.00 19.7
#3 8.00 15.1
<小时/>

相当于

mtcars %>% 
group_by(cyl, mpg) %>%
summarize(Count = n()) %>%
group_by(cyl) %>%
summarise(avg_mpg = sum(mpg * Count)/sum(Count))

关于r - 如何使用 dplyr 计算两个分组变量的加权平均值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49992049/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com