gpt4 book ai didi

r - 使用 purrr 映射按列对迭代汇总

转载 作者:行者123 更新时间:2023-12-04 03:07:10 24 4
gpt4 key购买 nike

我有一个大型数据集,我希望从中获得一列按其他两列分组时的汇总估计值(平均值、中位数、计数等)。

非常努力地尝试找出如何使用 purrr 来做到这一点 - 希望让这个工作流为 future 的项目点击......但非常卡住。

作为一个可重现的例子,这适用于按 amvs 分组,并估计 mpg 的汇总值

library(tidyverse)
library(rlang)

mtcars %>%
group_by(am, vs) %>%
summarise(mean_mpg = mean(mpg),
median_mpg = median(mpg),
count = n())

但是,为了扩展这个例子,假设我想为 amvs 分组;然后是amgear;然后是 amcarb。直觉上,这似乎是 map 应该处理的事情。

group_vars <- c("vs", "gear", "carb")
group_syms <- rlang::syms(group_vars)
sym_am <- rlang::sym("am")

mtcars %>%
map_df(~group_by(!!sym_am, !!!group_syms) %>%
summarise(mean_mpg = mean(mpg),
summarise(median_mpg = median(mpg),
summarise(count = n())
)

#Error in !sym_am : invalid argument type

最佳答案

我们可以使用 purrr 中的 map2 将多个符号用作参数,然后在 group_bysummarise 输出

library(tidyverse)
map2_df(list(sym_am), group_syms, ~ mtcars %>%
group_by(!!.x, !!.y) %>%
summarise(mean_mgp = mean(mpg), median_mpg = median(mpg),count = n()))

关于r - 使用 purrr 映射按列对迭代汇总,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47872057/

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