The progressify package allows you to easily add progress
reporting to sequential and parallel map-reduce code by piping to the
progressify() function. Easy!
library(progressify)
handlers(global = TRUE)
library(plyr)
slow_fcn <- function(x) {
Sys.sleep(0.1) # emulate work
x^2
}
xs <- 1:100
ys <- llply(xs, slow_fcn) |> progressify()
This vignette demonstrates how to use this approach to add progress
reporting to plyr functions such as llply(), maply(), and
ddply().
The plyr llply() function is commonly used to apply a function
to the elements of a list and return a list. For example,
library(plyr)
xs <- 1:100
ys <- llply(xs, slow_fcn)
Here llply() provides no feedback on how far it has progressed,
but we can easily add progress reporting by using:
library(plyr)
library(progressify)
handlers(global = TRUE)
xs <- 1:100
ys <- llply(xs, slow_fcn) |> progressify()
Using the default progress handler, the progress reporting will appear as:
|===== | 20%
The progressify() function supports the following plyr
functions:
l_ply(), laply(), ldply(), llply()m_ply(), maply(), mdply(), mlply()r_ply(), raply(), rdply(), rlply()