NAME

Statistics::R::REXP::Environment - an R environment

VERSION

version 1.0002

SYNOPSIS

use Statistics::R::REXP::Environment

my $env = Statistics::R::REXP::Environment->new({
    x => Statistics::R::REXP::Character->new(['foo', 'bar']),
    b => Statistics::R::REXP::Double->new([1, 2, 3]),
});
print $env->elements;

DESCRIPTION

An object of this class represents an R environment (ENVSXP). Environments in R consist of a frame, a set of symbol-value pairs, and an enclosure, a pointer to an enclosing (also called "parent") environment. Environments form a tree structure, with a special emptyenv environment at the root, which has no parent.

These objects represent calls (such as model formulae), with first element a reference to the function being called, and the remainder the actual arguments of the call. Names of arguments, if given, are recorded in the 'names' attribute (itself as Statistics::R::REXP::Character vector), with unnamed arguments having name ''. If no arguments were named, the environment objects will not have a defined 'names' attribute.

You shouldn't create instances of this class, it exists mainly to handle deserialization of ENVSXPs by the IO classes.

METHODS

Statistics::R::REXP:Environment inherits from Statistics::R::REXP::Vector, with the added restriction that its first element has to be a Statistics::R::REXP::Symbol or another Environment instance. Trying to create a Environment instance that doesn't follow this restriction will raise an exception.

ACCESSORS

frame

Returns a reference to the hash of symbol-value pairs representing the environment's frame, i.e., the variable with bound values in the environment.

enclosure

Returns a reference to the parent Environment, if it is defined.

name

Environments can be named, although this is not normally settable from R code. Typically, only the system environments (such as namespaces), and environments created by attach-ing an object, have a name.

sexptype

SEXPTYPE of environments is ENVSXP.

to_pl

Environments do not have a native Perl representation and trying to call this access will raise an exception.

BUGS AND LIMITATIONS

Classes in the REXP hierarchy are intended to be immutable. Please do not try to change their value or attributes.

There are no known bugs in this module. Please see Statistics::R::IO for bug reporting.

SUPPORT

See Statistics::R::IO for support and contact information.

AUTHOR

Davor Cubranic <cubranic@stat.ubc.ca>

COPYRIGHT AND LICENSE

This software is Copyright (c) 2017 by University of British Columbia.

This is free software, licensed under:

The GNU General Public License, Version 3, June 2007