Я хотел бы заменить это (want
) на функцию:
library(tidyverse)
library(rlang)
set.seed(1)
create_a <- function() {
list(x = 1:10, y = data.frame(aa = round(rnorm(10, 2000, 10), 0),
bb = sample(letters[3:8], 10, replace = T),
stringsAsFactors = F))
}
create_b <- function() {
list(x = 1:10, y = data.frame(aa = round(rnorm(10, 10, 1), 0),
bb = sample(letters[3:8], 10, replace = T),
stringsAsFactors = F))
}
want <- list(x = reduce(map(list(create_a(), create_b()), 1), c),
y = reduce(map(list(create_a(), create_b()), 2), rbind)) # or bind_rows
Существует несколько функций (create_a
и create_b
), которые создают выходные списки с элементами с одинаковыми именами. В отличие от приведенных выше примеров, расчеты в реальных функциях весьма различны.
Функция должна выглядеть так:
multiple_reduce <- function(...) {
# ????
}
want <- multiple_reduce(create_a(),
create_b())
Как вы делаете это, используя аккуратный подход?
want
должно выглядеть так в обоих случаях:
$x
[1] 1 2 3 4 5 6 7 8 9 10 1 2 3 4 5 6 7 8 9 10
$y
aa bb
1 2014 e
2 1999 g
3 2004 e
4 1999 d
5 1986 g
6 1996 d
7 1996 g
8 1999 c
9 2011 d
10 2008 c
11 9 h
12 10 g
13 11 e
14 10 e
15 11 c
16 10 c
17 9 g
18 10 c
19 9 e
20 11 f