expression               package: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)

