The function my_function takes parameters stored in a data frame. Parameters and take one extra parameter as another data frame independently in indf
library(tidyverse)
my_function <- function (x=NULL,y=NULL,z=NULL, indf=NULL) {
 out <- (x * y *z )
 out * indf
}
parameters <- tribble(
  ~x, ~y, ~z,
  5,     1,  1,
  10,     5,  3,
  -3,    10,  5
)
indf <- tribble(
  ~A, ~B, ~C,
  100,     10,  1,
  1000,     300,  3,
  20,    10,  5
)
parameters %>% 
  pmap(my_function, indf=indf)
The output shows the list of data frames
#> [[1]]
#>      A    B  C
#> 1  500   50  5
#> 2 5000 1500 15
#> 3  100   50 25
#> 
#> [[2]]
#>        A     B   C
#> 1  15000  1500 150
#> 2 150000 45000 450
#> 3   3000  1500 750
#> 
#> [[3]]
#>         A      B    C
#> 1  -15000  -1500 -150
#> 2 -150000 -45000 -450
#> 3   -3000  -1500 -750
When I run the above function with parallel package using the following code:
library(parallel)
parameters %>% 
  lift(mcmapply, mc.cores = detectCores() - 1)(FUN = my_function, indf=indf)
The following matrix is produced.
     [,1]  [,2] [,3]
[1,]  500  1500 -150
[2,] 5000 45000 -450
[3,]  100  1500 -750
How can I implement parallel so that it produces a list of data frames like the initial output?