У меня есть данные с тремя группами, и я хотел бы выполнить разные пользовательские функции для каждой из трех групп. Вместо того, чтобы писать три отдельные функции и вызывать их все по отдельности, мне интересно, могу ли я легко объединить все три в одну функцию с параметром «группа».
Например, скажем, мне нужно среднее значение для группы A:
library(tidyverse)
data(iris)
iris$Group <- c(rep("A", 50), rep("B", 50), rep("C", 50))
f_a <- function(df){
out <- df %>%
group_by(Species) %>%
summarise(mean = mean(Sepal.Length))
return(out)
}
Медиана для группы B
f_b <- function(df){
out <- df %>%
group_by(Species) %>%
summarise(median = median(Sepal.Length))
return(out)
}
И стандартное отклонение для группы C
f_c <- function(df){
out <- df %>%
group_by(Species) %>%
summarise(sd= sd(Sepal.Length))
return(out)
}
Есть ли способ объединить вышеуказанные функции и запустить их в соответствии с параметром группы ?? Например: fx(df, group = "A")
Что даст результаты вышеупомянутой функции f_a ??
Имея в виду, что в моем реальном контексте использования я не могу просто group_by (group) в исходной функции, поскольку фактические функции более сложные. Спасибо!!