expression {base} | R Documentation

## Unevaluated Expressions

### Description

Creates or tests for objects of mode `"expression"`.

### Usage

    expression(...)

    is.expression(x)
    as.expression(x, ...)

### Arguments

`...` | `expression`: R objects, typically calls, symbols or constants. `as.expression`: arguments to be passed to methods.
`x` | an arbitrary R object.

### Details

‘Expression’ here is not being used in its colloquial sense, that of mathematical expressions. Those are calls (see `call`) in R, and an R expression vector is a list of calls, symbols etc, typically as returned by `parse`.

As an object of mode `"expression"` is a list, it can be subsetted by both `[` and by `[[`, the latter extracting individual calls etc.

### Value

`expression` returns a vector of type `"expression"` containing its arguments (unevaluated).
`is.expression` returns `TRUE` if `expr` is an expression object and `FALSE` otherwise.
`as.expression` attempts to coerce its argument into an expression object. It is generic, and only the default method is described here. `NULL`, calls, symbols (see `as.symbol`) and pairlists are returned as the element of a length-one expression vector. Vectors (including lists) are placed element-by-element into an expression vector. Other types are not currently supported.

### References

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

### See Also

`call`, `eval`, `function`. Further, `text` and `legend` for plotting mathematical expressions.

### Examples

    length(ex1 <- expression(1+ 0:9))# 1
    ex1
    eval(ex1)# 1:10

    length(ex3 <- expression(u,v, 1+ 0:9))# 3
    mode(ex3 [3]) # expression
    mode(ex3[[3]])# call
    rm(ex3)

[Package base version 2.8.1 Index]