[ RDocumentation ](/)

Moon  [ ](https://github.com/datacamp/rdocumentation-2.0) [ Learn R
](https://www.datacamp.com/learn/r)

Search all packages and functions

[ base  (version  3.6.2  ) ](/packages/base/versions/3.6.2)

#  deparse: Expression Deparsing

##  Description

Turn unevaluated expressions into character strings.

##  Usage

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

##  Arguments

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
](/link/.deparseOpts?package=base&version=3.6.2) ` .

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 ](/link/expression?package=base&version=3.6.2) ` ) into
character strings (a kind of inverse to ` [ parse
](/link/parse?package=base&version=3.6.2) ` ).

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
and a warning will be issued if the function recognizes that it is being asked
to do the impossible.

Numeric and complex vectors are converted using 15 significant digits: see ` [
as.character ](/link/as.character?package=base&version=3.6.2) ` for more
details.

` width.cutoff ` is a lower bound for the line lengths: deparsing a line
proceeds until at least ` width.cutoff ` _bytes_ have been output and e.g. `
arg = value ` expressions will not be split across lines.

##  References

Becker, R. A., Chambers, J. M. and Wilks, A. R. (1988) _The New S Language_ .
Wadsworth & Brooks/Cole.

##  See Also

` [ substitute ](/link/substitute?package=base&version=3.6.2) ` , ` [ parse
](/link/parse?package=base&version=3.6.2) ` , ` [ expression
](/link/expression?package=base&version=3.6.2) ` .

` Quotes ` for quoting conventions, including backticks.

##  Examples

[ Run this code
](https://app.datacamp.com/workspace/preview?_tag=rdocs&rdocsPath=packages%2Fbase%2Fversions%2F3.6.2%2Ftopics%2Fdeparse&utm_source=r-docs&utm_medium=docs&utm_term=deparse&utm_content=run_example_in_workspace)

    
    
    # 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( . )
    # }
    

Run the code above in your browser using  [ DataCamp Workspace
](https://app.datacamp.com/workspace/preview?_tag=rdocs&rdocsPath=packages%2Fbase%2Fversions%2F3.6.2%2Ftopics%2Fdeparse&utm_source=r-docs&utm_medium=docs&utm_term=deparse&utm_content=run_example_in_workspace)

Powered by  [ DataCamp ](https://www.datacamp.com/)