| fapply | R Documentation |
A lightweight and fast version of 'lapply()' with support for multicore (Unix) and snow-style clusters via 'parallel', with internal progress bar tracking and message suppression. When 'pb = TRUE', progress advances when individual tasks complete, including in the parallel paths, so counts reflect completed jobs rather than internal chunk boundaries. Progress rendering is throttled for large workloads to keep console redraw overhead bounded, while status output reports elapsed time and estimated time remaining.
fapply(.x, .f, ncores = 1, pb = FALSE, cl = NULL, load_balancing = TRUE, ...)
.x |
A list or atomic vector. |
.f |
Function to apply. |
ncores |
Number of cores to use (default: 1 = sequential). |
pb |
Show progress bar? (default: FALSE). When enabled, progress is driven by completed tasks. In parallel mode, updates occur as workers return results. |
cl |
A cluster object (from parallel::makeCluster), or integer for core count. |
load_balancing |
Logical. Use 'parLapplyLB' if 'TRUE' (default: 'FALSE'). |
... |
Additional arguments passed to '.f'. |
A list of results.
# Basic usage (sequential)
fapply(1:5, sqrt)
# With progress bar (sequential)
fapply(1:5, function(x) { Sys.sleep(0.1); x^2 }, pb = TRUE)
# Multicore on Unix (if available)
if (.Platform$OS.type != "windows") {
fapply(1:10, sqrt, ncores = 2)
}
# With user-created cluster (portable across platforms)
cl <- parallel::makeCluster(2)
fapply(1:10, sqrt, cl = cl)
parallel::stopCluster(cl)
# Heavy computation example with exact completion-driven progress
heavy_fn <- function(x) { Sys.sleep(0.05); x^2 }
fapply(1:20, heavy_fn, ncores = 2, pb = TRUE)
Add the following code to your website.
For more information on customizing the embed code, read Embedding Snippets.