假设我想用不同的功能分组后总结一个数据帧。我怎样才能做到这一点?
mtcars %>% group_by(cyl) %>% summarise(size = n())
# A tibble: 3 x 2
cyl size
<dbl> <int>
1 4 11
2 6 7
3 8 14
但是,如果我尝试:
mtcars %>% group_by(cyl) %>% summarise(size = n()) %>% summarise_at(vars(c(mpg, am:carb)), mean)
Error in is_string(y) : object 'carb' not found
如何首先通过
n()
获得每个组的大小,然后再获得其他所选特征的均值? 最佳答案
这是通过分组变量对两个摘要操作使用dplyr::inner_join()
的一种方法:
mtcars %>%
group_by(cyl) %>%
summarise(size = n()) %>%
inner_join(
mtcars %>%
group_by(cyl) %>%
summarise_at(vars(c(mpg, am:carb)), mean),
by='cyl' )
输出为:
# A tibble: 3 x 6
cyl size mpg am gear carb
<dbl> <int> <dbl> <dbl> <dbl> <dbl>
1 4 11 26.7 0.727 4.09 1.55
2 6 7 19.7 0.429 3.86 3.43
3 8 14 15.1 0.143 3.29 3.5
关于r - 在同一dplyr链中使用summary和summarise_at,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/57385799/