我有一个 Dataframe ,我应用了一些自定义总结逻辑(如果每组的最大值超过100,则使用最大值,否则使用每组值的平均值):
library(tidyverse)
dat <- data.frame(grp = c("a", "a", "a", "b", "b"),
vals = c(115, 100, 101, 90, 100))
dat %>%
group_by(grp) %>%
summarise(new_val = case_when(max(vals) >= 100 ~ max(vals),
TRUE ~ mean(vals)))
但是,我需要重用具有不同最大截止值的自定义汇总逻辑,但又不想在汇总逻辑中一遍又一遍地进行硬编码。
以下内容不起作用:
sumFunc <- function(max_val) {
case_when(max(vals) >= max_val ~ max(vals),
TRUE ~ mean(vals))
}
dat %>%
group_by(grp) %>%
summarise(new_val = sumFunc(100))
1条答案
按热度按时间hjzp0vay1#
或者这个: