Call pbapply::pbsapply
with nc default at number of cores available.
Also, this works on Windows directly.
Note this throws an error on unix systems, unlike parallel::mclapply
par_sapply(
X,
FUN,
nc = NULL,
pb = TRUE,
simplify = TRUE,
export_objects = NULL,
...
)
vector/matrix, list if simplify=FALSE
vector / list of values
function to be executed with each element of X
.
Integer: number of cores to be used in parallel. DEFAULT: NULL (available cores)
Show progress bar with remaining time and at the end runtime? DEFAULT: TRUE
Simplify output to vector/matrix if possible? Note that simplify="array" is not implemented here. DEFAULT: TRUE
For windows: Objects needed in FUN
. DEFAULT: NULL
Further arguments passed to FUN
or
pbapply::pbsapply
Berry Boessenkool, berry-b@gmx.de, Apr 2021
pbapply::pbsapply
, sapply
, parallelCode
if (FALSE) # Suppressed on CRAN checks as this is time-consuming
fun <- function(x) mean(rnorm(1e7))
pbapply::pbsapply(1:20, fun)
par_sapply(1:20, fun)
#sapply(1:20, fun)
inp_chr_named <- list(first=1, second=2, third="3", fourth=4, fifth="5")
inp_num_named <- lapply(inp_chr_named, as.numeric)
inp_chr_none <- unname(inp_chr_named)
inp_num_none <- unname(inp_num_named)
if(FALSE){#intentional errors, don't run
par_sapply(inp_chr_named, log) # fails with name(s)
par_sapply(inp_num_named, log) # works, has names
par_sapply(inp_chr_none, log) # fails with index number (s)
par_sapply(inp_num_none, log) # no names, like in sapply
}
Run the code above in your browser using DataLab