Learn R Programming

rms (version 6.9-0)

setPb: Progress Bar for Simulations

Description

Depending on prevailing options(showprogress=) and availability of the tcltk package, sets up a progress bar and creates a function for simple updating of the bar as iterations progress. Setting options(showprogressbar=FALSE) or options(showprogressbar='none') results in no progress being shown. Setting the option to something other than "tk" or "none" results in the console being used to show the current iteration number and intended number of iterations, the same as if tcltk is not installed. It is not recommended that the "tk" be used for simulations requiring fewer than 10 seconds for more than 100 iterations, as the time required to update the pop-up window will be more than the time required to do the simulations. This problem can be solved by specifying, for example, every=10 to setPb or to the function created by setPb, or by using options(showevery=10) before setPb is called. If options(showprogress=) is not specified, progress is shown in the console with an iteration counter.

Usage

setPb(n, type = c("Monte Carlo Simulation", "Bootstrap",
                  "Cross-Validation"),
         label, usetk = TRUE, onlytk=FALSE, every=1)

Value

a function that should be called by the user once per iteration, specifying the iteration number as the sole argument

Arguments

n

maximum number of iterations

type

type of simulation. Used for the progress bar title if tcltk is being used.

label

used to customize the bar label if present, overriding type

usetk

set to FALSE to override, acting as though the tcltk package were not installed

onlytk

set to TRUE to not write to the console even if tcltk is unavailable and showprogressbar is not FALSE or "none"

every

print a message for every every iterations

Author

Frank Harrell

See Also

Examples

Run this code
if (FALSE) {
options(showprogress=TRUE)   # same as ='tk'
pb <- setPb(1000)
for(i in 1:1000) {
   pb(i)   # pb(i, every=10) to only show for multiples of 10
   # your calculations
  }
# Force rms functions to do simulations to not report progress
options(showprogress='none')
# For functions that do simulations to use the console instead of pop-up
# Even with tcltk is installed
options(showprogress='console')
pb <- setPb(1000, label='Random Sampling')
}

Run the code above in your browser using DataLab