I am looking for a more elegant or efficient solution of appending multiple lists of data frames into a single list. For simplicity, let's assume we deal with the following case:
my_func <- function(i) {
# function to generate a list with two data frames
head(cars, i * 5) -> df1
head(iris, i * 5) -> df2
return(list(df1, df2))
}
Let us say we want to execute the function my_func
three times and rbind
the results in a list:
#output
Map(rbind, my_func(1), my_func(2), my_func(3)) -> out
#this would not be so elegant if we have to run the function many times.
#or
for (i in 1:3) {
if (i == 1) {
out <- my_func(i)
} else {
out <- Map(rbind, out, my_func(i))
}
}
I am not looking for something like this:
do.call(rbind, lapply(1:3, function(i) my_func(i)[[1]]))
do.call(rbind, lapply(1:3, function(i) my_func(i)[[2]]))
I would like the final output as a list containing the appended data frames.
Thank you.