在dplyr中使用summarize_all并一起汇总

dre*_*ww2 3 r dplyr

有没有办法在dplyr链中将summarize_all和summaryrize语句组合在一起?像这样的东西:

library(dplyr)

data(mtcars)

mtcars %>%
  group_by(cyl) %>%
  summarize_all(funs(mean(., na.rm=TRUE))) %>%
  summarize(n = n())
Run Code Online (Sandbox Code Playgroud)

但当然这不起作用,因为它试图总结一个总结.

预期结果是单个data.frame由cyl分组,每列按平均值汇总,以及由cyl观察的计数.我可以通过使用bind_cols组合两个单独的摘要语句来做到这一点,但有更好的方法吗?

谢谢

tyl*_*uRp 5

我想我们可以add_count在这里使用:

library(dplyr)

mtcars %>% 
  add_count(cyl) %>% 
  group_by(cyl, n) %>% 
  summarise_all(.funs = mean, na.rm = TRUE)
Run Code Online (Sandbox Code Playgroud)
# A tibble: 3 x 12
# Groups:   cyl [?]
    cyl     n   mpg  disp    hp  drat    wt  qsec    vs    am  gear  carb
  <dbl> <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
1    4.    11  26.7  105.  82.6  4.07  2.29  19.1 0.909 0.727  4.09  1.55
2    6.     7  19.7  183. 122.   3.59  3.12  18.0 0.571 0.429  3.86  3.43
3    8.    14  15.1  353. 209.   3.23  4.00  16.8 0.    0.143  3.29  3.50
Run Code Online (Sandbox Code Playgroud)