使用Dplyr :: Group_by和Dplyr :: Summarise时如何从不同的分组变量中输出汇总列表

麦克风
library(tidyverse)

使用mtcars数据集中的一个简单示例,我可以按cyl分组并以此获取基本计数...

mtcars%>%group_by(cyl)%>%summarise(Count=n())

我可以按cyl和am分组

mtcars%>%group_by(cyl,am)%>%summarise(Count=n())

然后,我可以创建一个函数,使我可以输入多个分组变量。

Fun<-function(dat,...){
dat%>%
group_by_at(vars(...))%>%
summarise(Count=n())
}

但是,我不想输出多个分组变量,而是要输出两个摘要的列表,一个摘要用于将cyl作为分组变量的计数,另一个用于cyl和am作为分组变量。

我觉得类似以下内容的东西应该可以工作,但是我似乎无法弄清楚。我希望有一个rlang或purrr解决方案。帮助将不胜感激。

Groups<-list("cyl",c("cyl","am"))

mtcars%>%group_by(!!Groups)%>%summarise(Count=n())
压缩

这是一种符合tidyeval的有效方法。

library(tidyverse)
library(rlang)

Groups <- list("cyl" ,c("cyl","am"))

Groups %>%
  map(function(group) {
    syms <- syms(group)
    mtcars %>%
      group_by(!!!syms) %>%
      summarise(Count = n())
  })

#> [[1]]
#> # A tibble: 3 x 2
#>     cyl Count
#>   <dbl> <int>
#> 1     4    11
#> 2     6     7
#> 3     8    14
#> 
#> [[2]]
#> # A tibble: 6 x 3
#> # Groups:   cyl [?]
#>     cyl    am Count
#>   <dbl> <dbl> <int>
#> 1     4     0     3
#> 2     4     1     8
#> 3     6     0     4
#> 4     6     1     3
#> 5     8     0    12
#> 6     8     1     2

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

group_by变量和dplyr中的和

dplyr中的表和group_by

如何在使用Dplyr的Group_by和Summarise_at时对n()使用na.rm = TRUE

使用嵌套 group_by 时 dplyr 出错

如何使分位数与summarise_at和group_by(dplyr)一起使用

使用 dplyr、filter、group_by 和 summarise 计算 R 中的平均天数?

select和group_by关于引用变量之间的Dplyr差异?

Dplyr group_by和总结,但保留非数字变量

dplyr group_by和mutate,如何访问数据帧?

group_by dplyr未分组

使用`rle`函数和`dplyr``group_by`命令来映射分组变量

R dplyr 使用 group_by 汇总平均值和标准差

使用 dplyr、group_by 和折叠或汇总连接字符串/行,但保持 NA 值

如何使用 R 和 dplyr 中连续的元素执行 group_by

在dplyr包中使用group_by和mutate通过id变量创建新的因子变量

使用dplyr和group_by编写自己的函数-如何继续更改的列名

dplyr group_by并使用非标准评估进行汇总

使用dplyr根据列值进行分组(group_by)

如何在函数中使用dplyr :: group_by

如何在 dplyr 的 group_by 上使用 if/ifelse

如何使用 dplyr 到 group_by() 来折叠子系列

使用dplyr计数group_by中的子组

使用 dplyr、group_by、summary 进行 for 循环,并将每个变量的输出保存在列表中

dplyr:group_by +汇总未按预期工作

是否可以使用dplyr在单个group_by中将summary和summarise_at组合在一起

dplyr中的group_by日期列

dplyr group_by中的复杂列选择

dplyr:group_by之后摘要中的管道

如何将多个group_by参数和动态变量参数传递给dplyr函数