Progress updates for 'fwb' functions

The progressify package allows you to easily add progress reporting to sequential and parallel map-reduce code by piping to the progressify() function. Easy!

TL;DR

library(progressify)
handlers(global = TRUE)
library(fwb)

# Run fractional weighted bootstrap with progress signaling
my_stat <- function(data, w) coef(lm(mpg ~ cyl, data = data, weights = w))
res <- fwb(data = mtcars, statistic = my_stat, R = 1000) |> progressify()

Introduction

This vignette demonstrates how to use this approach to add progress reporting to the fwb package's main function fwb().

The fwb package provides functions for generating fractional weighted bootstrap replicates. For example, fwb() runs a statistic function R times:

library(fwb)
my_stat <- function(data, w) coef(lm(mpg ~ cyl, data = data, weights = w))
res <- fwb(data = mtcars, statistic = my_stat, R = 1000)

By default, fwb() uses verbose = TRUE, which provides progress feedback via the pbapply package, where the style can be controlled via pbapply::pboptions().

As an alternative, we can use the progressify() function to report on progress via any combination of progressr reporters. To do this, use:

library(fwb)

library(progressify)
handlers(global = TRUE)

my_stat <- function(data, w) coef(lm(mpg ~ cyl, data = data, weights = w))
res <- fwb(data = mtcars, statistic = my_stat, R = 1000) |> progressify()

Comment: This will disable the built-in progress feedback by setting verbose = FALSE in order to avoid dual reporting.

Supported Functions

The progressify() function supports the following fwb functions: