withProgress: Reporting progress (functional API)

Description Usage Arguments Details See Also Examples

View source: R/progress.R

Description

Reports progress to the user during long-running operations.

Usage

1
2
3
4
5
6
7
8
9
withProgress(expr, min = 0, max = 1, value = min + (max - min) * 0.1,
  message = NULL, detail = NULL, session = getDefaultReactiveDomain(),
  env = parent.frame(), quoted = FALSE)

setProgress(value = NULL, message = NULL, detail = NULL,
  session = getDefaultReactiveDomain())

incProgress(amount = 0.1, message = NULL, detail = NULL,
  session = getDefaultReactiveDomain())

Arguments

expr

The work to be done. This expression should contain calls to setProgress.

min

The value that represents the starting point of the progress bar. Must be less tham max. Default is 0.

max

The value that represents the end of the progress bar. Must be greater than min. Default is 1.

value

Single-element numeric vector; the value at which to set the progress bar, relative to min and max. NULL hides the progress bar, if it is currently visible.

message

A single-element character vector; the message to be displayed to the user, or NULL to hide the current message (if any).

detail

A single-element character vector; the detail message to be displayed to the user, or NULL to hide the current detail message (if any). The detail message will be shown with a de-emphasized appearance relative to message.

session

The Shiny session object, as provided by shinyServer to the server function. The default is to automatically find the session by using the current reactive domain.

env

The environment in which expr should be evaluated.

quoted

Whether expr is a quoted expression (this is not common).

amount

For incProgress, the amount to increment the status bar. Default is 0.1.

Details

This package exposes two distinct programming APIs for working with progress. Using withProgress with incProgress or setProgress provide a simple function-based interface, while the Progress reference class provides an object-oriented API.

Use withProgress to wrap the scope of your work; doing so will cause a new progress panel to be created, and it will be displayed the first time incProgress or setProgress are called. When withProgress exits, the corresponding progress panel will be removed.

The incProgress function increments the status bar by a specified amount, whereas the setProgress function sets it to a specific value, and can also set the text displayed.

Generally, withProgress/incProgress/setProgress should be sufficient; the exception is if the work to be done is asynchronous (this is not common) or otherwise cannot be encapsulated by a single scope. In that case, you can use the Progress reference class.

See Also

Progress

Examples

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
## Only run examples in interactive R sessions
if (interactive()) {

ui <- fluidPage(
  plotOutput("plot")
)

server <- function(input, output) {
  output$plot <- renderPlot({
    withProgress(message = 'Calculation in progress',
                 detail = 'This may take a while...', value = 0, {
      for (i in 1:15) {
        incProgress(1/15)
        Sys.sleep(0.25)
      }
    })
    plot(cars)
  })
}

shinyApp(ui, server)
}

ymd526442121/Rproject_shiny documentation built on May 4, 2019, 5:31 p.m.