首页 > 解决方案 > 按非列 X 分组

问题描述

有没有办法

a = data.frame(A = 1:4,B= 2:5,c=3:6) %>% groupby(*??????*) 

是否有一个简单的命令可以按列而不是 c 进行分组?允许我在有很多列的情况下不写出 group_by(A,B) ?

标签: rdplyr

解决方案


我们可以用setdiff

library(dplyr)
data.frame(A = 1:4,B= 2:5,c=3:6)  %>%
       group_by(across(all_of(setdiff(names(.), 'c'))))

或与-

data.frame(A = 1:4,B= 2:5,c=3:6)  %>%
       group_by(across(-c))

-输出

# A tibble: 4 x 3
# Groups:   A, B [4]
#      A     B     c
#  <int> <int> <int>
#1     1     2     3
#2     2     3     4
#3     3     4     5
#4     4     5     6

推荐阅读