[英]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.