shiny (version 1.6.0)

renderPrint: Text Output

Description

renderPrint() prints the result of expr, while renderText() pastes it together into a single string. renderPrint() is equivalent to print(); renderText() is equivalent to cat(). Both functions capture all other printed output generated while evaluating expr.

renderPrint() is usually paired with verbatimTextOutput(); renderText() is usually paired with textOutput().

Usage

renderPrint(
  expr,
  env = parent.frame(),
  quoted = FALSE,
  width = getOption("width"),
  outputArgs = list()
)

renderText( expr, env = parent.frame(), quoted = FALSE, outputArgs = list(), sep = " " )

Arguments

expr

An expression to evaluate.

env

The environment in which to evaluate expr. For expert use only.

quoted

Is expr a quoted expression (with quote())? This is useful if you want to save an expression in a variable.

width

Width of printed output.

outputArgs

A list of arguments to be passed through to the implicit call to verbatimTextOutput() or textOutput() when the functions are used in an interactive RMarkdown document.

sep

A separator passed to cat to be appended after each element.

Value

For renderPrint(), note the given expression returns NULL then NULL will actually be visible in the output. To display nothing, make your function return invisible().

Details

The corresponding HTML output tag can be anything (though pre is recommended if you need a monospace font and whitespace preserved) and should have the CSS class name shiny-text-output.

Examples

# NOT RUN {
isolate({

# renderPrint captures any print output, converts it to a string, and
# returns it
visFun <- renderPrint({ "foo" })
visFun()
# '[1] "foo"'

invisFun <- renderPrint({ invisible("foo") })
invisFun()
# ''

multiprintFun <- renderPrint({
  print("foo");
  "bar"
})
multiprintFun()
# '[1] "foo"\n[1] "bar"'

nullFun <- renderPrint({ NULL })
nullFun()
# 'NULL'

invisNullFun <- renderPrint({ invisible(NULL) })
invisNullFun()
# ''

vecFun <- renderPrint({ 1:5 })
vecFun()
# '[1] 1 2 3 4 5'


# Contrast with renderText, which takes the value returned from the function
# and uses cat() to convert it to a string
visFun <- renderText({ "foo" })
visFun()
# 'foo'

invisFun <- renderText({ invisible("foo") })
invisFun()
# 'foo'

multiprintFun <- renderText({
  print("foo");
  "bar"
})
multiprintFun()
# 'bar'

nullFun <- renderText({ NULL })
nullFun()
# ''

invisNullFun <- renderText({ invisible(NULL) })
invisNullFun()
# ''

vecFun <- renderText({ 1:5 })
vecFun()
# '1 2 3 4 5'

})
# }