Rserve::REXP::Expression - an R expression vector
use Rserve::REXP::Expression
# Representation of the R call C<expresson(1 + 2))>:
my $vec = Rserve::REXP::Expression->new([
Rserve::REXP::Language->new([
Rserve::REXP::Symbol->new('+'),
Rserve::REXP::Double->new([1]),
Rserve::REXP::Double->new([2])
])
]);
print $vec->elements;
An object of this class represents an R expression vectors (EXPRSXP
). These objects represent a list of calls, symbols, etc., for example as returned by calling R function parse
or expression
.
Rserve::REXP:Expression
inherits from Rserve::REXP::List, with no added restrictions on the value of its elements.
SEXPTYPE of expressions is EXPRSXP
.
Perl value of the expression vector is an array reference to the Perl values of its elements
. (That is, it's equivalent to map {$_->to_perl}, $vec->elements
.) Unlike List, elements that are atomic vectors of length 1 are still represented as a one-element array reference, rather than scalar values.