R: Group_by取决于条件

  • 本文关键字:取决于 条件 by Group r
  • 更新时间 :
  • 英文 :


让我们假设我有这样一个简单的数据框架:

df <- tibble(a = c(1, 1), b = c(2, 2))

我现在想知道如何在依赖于变量的管道中使用group_by。类似的,

flag <- T
resulting <- df %>% 
filter(a > 0 & b >0) %>%
group_by(ifelse(flag), yes = c(a), no = c(a, b))

也就是说,如果flag == T,那么我只想对a列进行分组。如果标志是false,我想对两个列进行分组。

我想这对我有用

flag <- T
resulting <- df %>% 
filter(a > 0 & b >0) %>%
{if(flag) group_by(.,a) else group_by(. ,a , b)}
resulting
# A tibble: 2 × 2
# Groups:   a [1]  # <======== here grouped by a
a     b
<dbl> <dbl>
1     1     2
2     1     2

通过改变标志

flag <- F
resulting <- df %>% 
filter(a > 0 & b >0) %>% 
{if(flag) group_by(.,a) else group_by(. ,a , b)}
resulting
# A tibble: 2 × 2
# Groups:   a, b [1]   # <======== here grouped by a ,b
a     b
<dbl> <dbl>
1     1     2
2     1     2

最新更新