【发布时间】:2021-01-29 23:44:25
【问题描述】:
我有包含三个组的数据,并希望对三个组中的每一个执行一个不同的自定义函数。与其编写三个单独的函数并分别调用它们,我想知道是否可以使用“组”参数轻松地将所有三个函数包装成一个函数。
例如,假设我想要 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),因为实际函数更复杂。谢谢!!
【问题讨论】: