The hardware and bandwidth for this mirror is donated by dogado GmbH, the Webhosting and Full Service-Cloud Provider. Check out our Wordpress Tutorial.
If you wish to report a bug, or if you are interested in having us mirror your free-software or open-source project, please feel free to contact us at mirror[@]dogado.de.

The progressify package makes it extremely simple to
report progress updates for your existing map-reduce calls. All you need
to know is that there is a single function called
progressify() that will take care of everything, e.g.
y <- lapply(x, fcn) |> progressify()
y <- map(x, fcn) |> progressify()
y <- foreach(x = xs) %do% { fcn(x) } |> progressify()The progressify() function signals progress updates via
the progressr package,
meaning you can choose among the supported
progressr handlers on how to render progress updates,
whether it be via the terminal, a progress bar, or even a sound. The
progressify package has only one hard dependency - the
progressr
package.
In addition to getting progress updates via
progressr, by using progressify() you also
get access to all the benefits that come with
progressr. Notably, you have full control over when and
how progress is reported, and it works seamlessly across different
environments and frontends.
The progressify package supports transpilation of functions from multiple packages. The table below summarizes the supported map-reduce functions. To programmatically see which packages are currently supported, use:
progressify_supported_packages()To see which functions are supported for a specific package, use:
progressify_supported_functions("purrr")| Package | Functions |
|---|---|
| base | apply(), by(), eapply(),
lapply(), .mapply(), mapply(),
Map(), replicate(), sapply(),
tapply(), vapply() |
| stats | dendrapply() |
| future.apply | future_apply(), future_by(),
future_eapply(), future_lapply(),
future_.mapply(), future_mapply(),
future_Map(), future_replicate(),
future_sapply(), future_tapply(),
future_vapply() |
| purrr | map() and variants, walk() and variants,
map2() and variants, walk2() and variants,
pmap() and variants, pwalk(),
imap() and variants, modify(),
modify2(), imodify() |
| crossmap | xmap() and variants, xwalk(),
map_vec(), map2_vec(),
pmap_vec(), imap_vec() |
| furrr | future_map() and variants, future_walk()
and variants, future_map2() and variants,
future_walk2() and variants, future_pmap() and
variants, future_pwalk(), future_imap() and
variants |
| foreach | %do%, %dopar% |
| doFuture | %dofuture% |
| plyr | llply() and variants, mlply() and
variants, rdply(), rlply(),
raply(), r_ply() |
Table 1: Map-reduce functions currently supported by
progressify() for progress reporting.
Here are some examples:
library(progressify)
handlers(global = TRUE)
xs <- 1:10
ys <- lapply(xs, function(x) { Sys.sleep(0.1); sqrt(x) }) |> progressify()
d <- as.dendrogram(hclust(dist(USArrests)))
d2 <- dendrapply(d, function(n) { Sys.sleep(0.01); n }) |> progressify()
xs <- 1:10
ys <- purrr::map(xs, function(x) { Sys.sleep(0.1); sqrt(x) }) |> progressify()
xs <- list(1:5, 1:5)
ys <- crossmap::xmap(xs, ~ .y * .x) |> progressify()
library(foreach)
xs <- 1:10
ys <- foreach(x = xs) %do% { Sys.sleep(0.1); sqrt(x) } |> progressify()
xs <- 1:10
ys <- plyr::llply(xs, function(x) { Sys.sleep(0.1); sqrt(x) }) |> progressify()You can also progressify calls from a growing set of domain-specific CRAN packages that have optional built-in support for parallelization.
| Package | Functions |
|---|---|
| partykit | cforest() |
Table 2: CRAN packages with domain-specific functions currently
supported by progressify() for progress reporting.
Here are some examples:
forest <- partykit::cforest(Survived ~ ., data = as.data.frame(Titanic), ntree = 50L) |> progressify()The progressify package is compatible with the futurize package, which parallelizes code via the futureverse. You can combine the two, in either order, to get both progress reporting and parallelization:
library(progressify)
handlers(global = TRUE)
library(futurize)
plan(multisession)
xs <- 1:100
ys <- lapply(xs, slow_fcn) |> progressify() |> futurize()
ys <- purrr::map(xs, slow_fcn) |> progressify() |> futurize()
library(foreach)
ys <- foreach(x = xs) %do% { slow_fcn(x) } |> progressify() |> futurize()
ys <- plyr::llply(xs, slow_fcn) |> progressify() |> futurize()
forest <- partykit::cforest(dist ~ speed, data = cars, ntree = 50L) |> progressify() |> futurize()These binaries (installable software) and packages are in development.
They may not be fully stable and should be used with caution. We make no claims about them.
Health stats visible at Monitor.