Learn R Programming

functionals (version 0.5.0)

fapply: Apply a function over a list or vector with optional parallelism and progress

Description

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.

Usage

fapply(.x, .f, ncores = 1, pb = FALSE, cl = NULL, load_balancing = TRUE, ...)

Value

A list of results.

Arguments

.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).

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`.

Examples

Run this code
# 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)
# \donttest{
if (.Platform$OS.type != "windows") {
  fapply(1:10, sqrt, ncores = 2)
}
# }

# With user-created cluster (portable across platforms)
# \donttest{
cl <- parallel::makeCluster(2)
fapply(1:10, sqrt, cl = cl)
parallel::stopCluster(cl)
# }

# Heavy computation example with chunked parallelism
# \donttest{
heavy_fn <- function(x) { Sys.sleep(0.05); x^2 }
fapply(1:20, heavy_fn, ncores = 2, pb = TRUE)
# }

Run the code above in your browser using DataLab