R/partition_tables.R
execute_parallel.Rd
Execute f in parallel partitioned by partition_column
, see
partition_tables
for details.
execute_parallel( tables, f, partition_column, ..., cl = NULL, debug = FALSE, env = parent.frame() )
tables | named map of tables to use. |
---|---|
f | function to apply to each tableset signature is function takes a single argument that is a named list of data.frames. |
partition_column | character name of column to partition on |
... | force later arguments to bind by name. |
cl | parallel cluster. |
debug | logical if TRUE use lapply instead of parallel::clusterApplyLB. |
env | environment to look for values in. |
list of f evaluations.
if(requireNamespace("parallel", quietly = TRUE)) { cl <- parallel::makeCluster(2) d <- data.frame(x = 1:5, g = c(1, 1, 2, 2 ,2)) f <- function(dl) { d <- dl$d d$s <- sqrt(d$x) d } r <- execute_parallel(list(d = d), f, partition_column = "g", cl = cl) %.>% do.call(rbind, .) %.>% print(.) parallel::stopCluster(cl) }#> x g s #> 1.1 1 1 1.000000 #> 1.2 2 1 1.414214 #> 2.1 3 2 1.732051 #> 2.2 4 2 2.000000 #> 2.3 5 2 2.236068