簡體   English   中英

R group_by 多個條件聚合函數 dplyr

[英]R group_by multiple conditionnal aggregation functions dplyr

我正在搜索以組條件計算函數。 agg_name描述了要評估的函數,這個向量的長度可以是 1 到 N。這里 N = 5,所有的可能性都是已知的,但我更喜歡一般的東西。

agg_name <- c("Sum = sum(val)", "Mean = mean(val)")

df <- data.frame(dateDay = Sys.Date()-rep(0:2, each = 3), val = 1:9)

到目前為止的嘗試:

df <- df %>% 
  group_by(dateDay) %>% 
  summarise(eval(paste(agg_name, collapse = ",")))

預期輸出:

     dateDay Sum Mean
1 2019-09-04   6    2
2 2019-09-03   15   5
3 2019-09-02   24   8

如果agg_name包含Max = max(val) agg_name創建另一列。

任何幫助將不勝感激。

你可以做:

agg_name <- c(Sum = sum, Mean = mean)

df %>% 
 group_by(dateDay) %>% 
 summarise_all(agg_name)

  dateDay      Sum  Mean
  <date>     <int> <dbl>
1 2019-09-02    24     8
2 2019-09-03    15     5
3 2019-09-04     6     2

暫無
暫無

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

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