ID EN
Miscellaneous

deparse

R Base 3.6.2

Turn unevaluated expressions into character strings.

Syntax

R
deparse(expr, width.cutoff = 60L,
        backtick = mode(expr) %in% c("call", "expression", "(", "function"),
        control = c("keepNA", "keepInteger", "niceNames", "showAttributes"),
        nlines = -1L)

Arguments

Parameter Description
expr any R expression.
width.cutoff integer in \([20, 500]\) determining the cutoff (in bytes) at which line-breaking is tried.
backtick logical indicating whether symbolic names should be enclosed in backticks if they do not follow the standard syntax.
control character vector (or NULL) of deparsing options. See .deparseOpts.
nlines integer: the maximum number of lines to produce. Negative values indicate no limit.

Details

This function turns unevaluated expressions (where ‘expression’ is taken in a wider sense than the strict concept of a vector of mode "expression" used in expression) into character strings (a kind of inverse to parse). A typical use of this is to create informative labels for data sets and plots. The example shows a simple use of this facility. It uses the functions deparse and substitute to create labels for a plot which are character string versions of the actual arguments to the function myplot. The default for the backtick option is not to quote single symbols but only composite expressions. This is a compromise to avoid breaking existing code. Using control = "all" comes closest to making deparse() an inverse of parse(). However, not all objects are deparse-able even with this option

Examples

Example
R
# NOT RUN {
require(stats); require(graphics)

deparse(args(lm))
deparse(args(lm), width = 500)
myplot <-
function(x, y) {
    plot(x, y, xlab = deparse(substitute(x)),
        ylab = deparse(substitute(y)))
}
e <- quote(`foo bar`)
deparse(e)
deparse(e, backtick = TRUE)
e <- quote(`foo bar`+1)
deparse(e)
deparse(e, control = "all") # wraps it w/ quote( . )
# }

See Also

substitute parse expression. Quotes for quoting conventions including backticks.