首页 > 解决方案 > 如何在 R 中使用汇总功能制作函数?

问题描述

我不知道这是否是正确的问题,但是,我正在尝试从汇总函数中的另一个函数中创建一个函数:

library(tidyverse)

# one can use the summarize function to make several statistics

mtcars %>% 
  group_by(cyl) %>% 
  summarise(var = mean(mpg, na.rm = TRUE))

mtcars %>% 
  group_by(cyl) %>% 
  summarise(var = max(mpg, na.rm = TRUE))

mtcars %>% 
  group_by(cyl) %>%
  summarise(var = min(mpg, na.rm = TRUE))

问题:我怎样才能创建一个函数(如下面的例子)来功能化上面的例子?

summarize_function <- function(statistic) {

mtcars %>% 
  group_by(cyl) %>%
  summarise(var = statistic(mpg, na.rm = TRUE))

}

标签: rfunctiondplyrtidyversesummarize

解决方案


您可以将函数名称,例如,meanmax,传递给summarize_function

> summarize_function(mean)
# A tibble: 3 x 2
    cyl   var
  <dbl> <dbl>
1     4  26.7
2     6  19.7
3     8  15.1

> summarize_function(max)
# A tibble: 3 x 2
    cyl   var
  <dbl> <dbl>
1     4  33.9
2     6  21.4
3     8  19.2

推荐阅读