This provides a reference class representing a text progress bar that displays the estimated time remaining. When finished, it displays the total duration. The automatic progress bar can be disabled by setting progress_location = NULL.

progress_estimated(
  n,
  min_time = 0,
  progress_location = make_kpb_output_decisions()
)

Arguments

n

Total number of items

min_time

Progress bar will wait until at least min_time seconds have elapsed before displaying any results.

progress_location

where to write the progress to. Default is to make decisions based on location type using make_kpb_output_decisions().

Value

A ref class with methods tick(), print(), pause(), and stop().

Examples

p <- progress_estimated(3)
p$tick()
p$tick()
p$tick()

p <- progress_estimated(3)
for (i in 1:3) p$pause(0.1)$tick()$print()
#> 
|==================                                    | 33% ~0 s remaining     
|====================================                  | 67% ~0 s remaining     
|======================================================|100% ~0 s remaining     

p <- progress_estimated(3)
p$tick()$print()$
 pause(1)$stop()
#> 
Killed after 1 s                                                                

# If min_time is set, progress bar not shown until that many
# seconds have elapsed
p <- progress_estimated(3, min_time = 3)
for (i in 1:3) p$pause(0.1)$tick()$print()

if (FALSE) {
p <- progress_estimated(10, min_time = 3)
for (i in 1:10) p$pause(0.5)$tick()$print()

# output to stderr
p <- progress_estimated(10, progress_location = stderr())

# output to a file
p <- progress_estimated(10, progress_location = tempfile(fileext = ".log"))
}