Если я правильно вас понимаю, вы хотите, чтобы доля записей для каждой комбинации cyl
и am
. Если так, то я считаю, что ваш код не работает, потому что n()
не принимает аргумент. Вам также нужно ungroup()
, прежде чем вычислять ваши пропорции.
Вы можете просто сделать:
mtcars %>%
group_by(cyl, am) %>%
summarise(mpg = n()) %>%
ungroup() %>%
mutate(mpg.gr = mpg/(sum(mpg))
#> # A tibble: 6 x 4
#> cyl am mpg mpg.gr
#> <dbl> <dbl> <int> <dbl>
#> 1 4 0 3 0.0938
#> 2 4 1 8 0.25
#> 3 6 0 4 0.125
#> 4 6 1 3 0.0938
#> 5 8 0 12 0.375
#> 6 8 1 2 0.0625
Обратите внимание, что благодаря ungroup()
пропорции рассчитываются с использованием количества всех записей, а не только тех, которые находятся в группе cyl
, как и раньше.