Три вещи для исправления кода выше:
- Добавьте
choice
в качестве аргумента в вашу функцию.
- Сделайте так, чтобы ваша функция выводила, удалив
x <-
- Используйте tidyeval , чтобы аргумент "выбор" работал.
Таким образом, отредактированный код выглядит следующим образом:
my_fun <- function(x, choice)
{x %>%
summarise(`sum of mpg` = sum(mpg),
`sum of cyl` = sum(cyl),
`sum of choice` = sum(!!choice))}
list_results <- map(dflist, my_fun, choice = quo(disp))
Если вы хотите остаться в пределах фрейма данных / таблицы, то использование nest
для создания списка-столбцов может помочь.
mtcars2$group <- sample(c("a", "b", "c"), 32, replace = TRUE)
mtcars2 %>%
as_tibble() %>%
nest(-group) %>%
mutate(out = map(data, my_fun, quo(disp))) %>%
unnest(out)