3

他の 2 つの列でグループ化されたときに、1 つの列の要約推定値 (平均、中央値、カウントなど) を取得したい大規模なデータセットがあります。

を使用してこれを行う方法を真剣に考えようとしていますpurrr- うまくいけば、このワークフローが将来のプロジェクトでクリックできるようになります...しかし、非常に行き詰まっています。

再現可能な例として、これは および によるグループ化、amおよびvsの要約値の推定に機能します。mpg

library(tidyverse)
library(rlang)

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

amただし、この例を拡張するために、 and vs;をグループ化したいとします。そして; am_ gearそして。am_ carb直観的には、これは処理する必要があるようです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
4

2 に答える 2