如果小标题由dplyr中的多个变量分组,是否有办法删除单个分组变量,而不是重新指定没有该变量的组?我在想像group_by(df, -var, add = TRUE)这样的东西,尽管那行不通。

例子:

library(dplyr)

# Works
mtcars %>%
  # Original groups
  group_by(cyl, gear, carb) %>%
  # New groups
  group_by(cyl, gear) %>%
  group_vars()
# [1] "cyl"  "gear"

# Doesn't work
mtcars %>%
  # Original groups
  group_by(cyl, gear, carb) %>%
  # New groups
  group_by(-carb, add = TRUE) %>%
  group_vars()
# [1] "cyl"   "gear"  "carb"  "-carb"

这显然是一个简单的例子-我的实际用例有许多基于用户输入的条件分组,而我想只在函数中的某个位置删除一个分组,然后将其余分组保留。

最佳答案

除了一些以外,还可以使用.dots规范并按所有人分组。
例如。

library(dplyr)
ungroup_by <- function(x,...){
  group_by_(x, .dots = group_vars(x)[!group_vars(x) %in% ...])
}

mtcars %>%
  group_by(cyl, gear, carb) %>%
  ungroup_by('cyl') %>%
  group_vars()
[1] "gear" "carb"

类似的信息可以在this post中找到。

关于r - 删除单个dplyr group_by组,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/49065052/

10-12 20:45