Моя функция одного аргумента подавался dataframeПрименить список к функции, которая выводит dataframe
library(tidyverse)
myfun <-function(x) {mtcars %>%
filter_(x) %>%
group_by(cyl) %>%
summarise(mean(disp), mean(drat)) %>%
mutate(group=x)}
При кормлении одним аргументом в этой функции, он выводит, как и ожидалось, в dataframe:
myfun('mpg>15')
cyl mean(disp) mean(drat) group
4 105 4.07 mpg>15
6 183 3.59 mpg>15
8 105 3.20 mpg>15
Как применить такую функцию к списку аргументов, чтобы выход был одним фреймворком данных, объединяющим все результаты над списком. Например, я хотел бы применить myfun к списку
c('mpg>15', 'drat>4.2')
и, как результат, чтобы получить один dataframe:
cyl mean(disp) mean(drat) group
4 105 4.07 mpg>15
6 183 3.59 mpg>15
8 105 3.20 mpg>15
4 89 4.53 drat>4.2
8 351 4.22 drat>4.2
Как сделать это (предпочтительно в tidyverse)?
работает отлично! Спасибо! Мне не хватало%>% bind_rows – Irakli
Альтернативы: 'c (" mpg> 15 "," am == 1 ")%>% map_df (myfun)' или 'invoke_map_df (myfun, c (" mpg> 15 "," am == 1 "))' – alistaire
Ничего себе так коротко и элегантно, только одна труба @alistaire: c ("mpg> 15", "am == 1")%>% map_df (myfun) – Irakli