# expression

##### Unevaluated Expressions

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

.

- Keywords
- programming, dplot

##### 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, for example as returned by `parse`

.

As an object of mode `"expression"`

is a list, it can be
subsetted by `[`

, `[[`

or `$`

, the latter two extracting
individual calls etc. The replacement forms of these operators can be
used to replace or delete elements.

`expression`

and `is.expression`

are primitive functions.
`expression`

is ‘special’: it does not evaluate its arguments.

##### 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. (The default method calls
`as.vector(type = "expression")`

and so may dispatch methods for
`as.vector`

.) `NULL`

, calls, symbols (see
`as.symbol`

) and pairlists are returned as the element of
a length-one expression vector. Atomic vectors are placed
element-by-element into an expression vector (without using any
names): lists are changed type to an expression vector (keeping all
attributes). 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

`library(base)`

```
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)
```

*Documentation reproduced from package base, version 3.1.3, License: Part of R 3.1.3*