簡體   English   中英

R: Group_by 取決於條件

[英]R: Group_by depending on condition

假設我有這個簡單的數據框:

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

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM