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 ENVSXP
s 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