Note that this function is currently experimental!
Use cli_progress_along()
in a mapping function or in a for loop, to add a
progress bar. It uses cli_progress_bar()
internally.
cli_progress_along(
x,
name = NULL,
total = length(x),
...,
.envir = parent.frame()
)
An index vector from 1 to length(x)
that triggers progress
updates as you iterate over it.
Sequence to add the progress bar to.
Name of the progress bar, a label, passed to
cli_progress_bar()
.
Passed to cli_progress_bar()
.
Passed to cli_progress_bar()
.
Passed to cli_progress_bar()
.
for
loop
A for
loop with cli_progress_along()
looks like this:
for (i in cli_progress_along(seq)) {
...
}
A complete example:
clifun <- function() {
for (i in cli_progress_along(1:100, "Downloading")) {
Sys.sleep(4/100)
}
}
clifun()
lapply()
and other mapping functions
They will look like this:
lapply(cli_progress_along(X), function(i) ...)
A complete example:
res <- lapply(cli_progress_along(1:100, "Downloading"), function(i) {
Sys.sleep(4/100)
})
clifun <- function() {
for (i in cli_progress_along(1:100,
format = "Downloading data file {cli::pb_current}")) {
Sys.sleep(4/100)
}
}
clifun()
Note that if you use break
in the for
loop, you probably want to
terminate the progress bar explicitly when breaking out of the loop,
or right after the loop:
for (i in cli_progress_along(seq)) {
...
if (cond) cli_progress_done() && break
...
}
This function supports inline markup.
cli_progress_bar()
and the traditional progress bar API.
Other progress bar functions:
cli_progress_bar()
,
cli_progress_builtin_handlers()
,
cli_progress_message()
,
cli_progress_num()
,
cli_progress_output()
,
cli_progress_step()
,
cli_progress_styles()
,
progress-variables
Other functions supporting inline markup:
cli_abort()
,
cli_alert()
,
cli_blockquote()
,
cli_bullets()
,
cli_bullets_raw()
,
cli_dl()
,
cli_h1()
,
cli_li()
,
cli_ol()
,
cli_process_start()
,
cli_progress_bar()
,
cli_progress_message()
,
cli_progress_output()
,
cli_progress_step()
,
cli_rule
,
cli_status()
,
cli_status_update()
,
cli_text()
,
cli_ul()
,
format_error()
,
format_inline()