txtProgressBar {utils}R Documentation

Text Progress Bar


Text progress bar in the R console.


txtProgressBar(min = 0, max = 1, initial = 0, char = "=",
               width = NA, title, label, style = 1, file = "")

setTxtProgressBar(pb, value, title = NULL, label = NULL)
## S3 method for class 'txtProgressBar'
close(con, ...)


min, max

(finite) numeric values for the extremes of the progress bar. Must have min < max.

initial, value

initial or new value for the progress bar. See ‘Details’ for what happens with invalid values.


the character (or character string) to form the progress bar. Must have non-zero display width.


the width of the progress bar, as a multiple of the width of char. If NA, the default, the number of characters is that which fits into getOption("width").


the ‘style’ of the bar – see ‘Details’.


an open connection object or "" which indicates the console: stderr() might be useful here.

pb, con

an object of class "txtProgressBar".

title, label

ignored, for compatibility with other progress bars.


for consistency with the generic.


txtProgressBar will display a progress bar on the R console (or a connection) via a text representation.

setTxtProgessBar will update the value. Missing (NA) and out-of-range values of value will be (silently) ignored. (Such values of initial cause the progress bar not to be displayed until a valid value is set.)

The progress bar should be closed when finished with: this outputs the final newline character.

style = 1 and style = 2 just shows a line of char. They differ in that style = 2 redraws the line each time, which is useful if other code might be writing to the R console. style = 3 marks the end of the range by ‘⁠|⁠’ and gives a percentage to the right of the bar.


For txtProgressBar an object of class "txtProgressBar".

For getTxtProgressBar and setTxtProgressBar, a length-one numeric vector giving the previous value (invisibly for setTxtProgressBar).


Using style 2 or 3 or reducing the value with style = 1 uses ‘⁠\r⁠’ to return to the left margin – the interpretation of carriage return is up to the terminal or console in which R is running, and this is liable to produce ugly output on a connection other than a terminal, including when stdout() is redirected to a file.

See Also

winProgressBar (Windows only), tkProgressBar (Unix-alike platforms).


 # slow
testit <- function(x = sort(runif(20)), ...)
    pb <- txtProgressBar(...)
    for(i in c(0, x, 1)) {Sys.sleep(0.5); setTxtProgressBar(pb, i)}
testit(style = 3)
testit(char=' \u27a4')

[Package utils version 4.4.0 Index]