NAME
Statistics::R::REXP - base class for R objects (SEXP
s)
VERSION
version 0.05
SYNOPSIS
use Statistics::R::REXP;
# we usually get REXPs from an RDS file:
my $rexp = Statistics::R::IO::readRDS('file.rds');
# REXPs are stringifiable
say $rexp;
# REXPs can be converted to the closest native Perl data type
print $rexp->to_pl;
DESCRIPTION
An object of this class represents a native R object. This class cannot be directly instantiated (it's a Moo::Role), because it is intended as a base abstract class with concrete subclasses to represent specific object types.
An R object has a value and an optional set of named attributes, which themselves are R objects. Because the meaning of 'value' depends on the actual object type (for example, a vector vs. a NULL
, in R terminology), REXP
does not provide a generic value accessor method, although individual subclasses will typically have one.
METHODS
- attributes
-
Returns a hash reference to the object's attributes.
- to_pl
-
Returns Perl representation of the object's value. This is an abstract method; see concrete subclasses for the value returned by specific object types, as well as the way to access the R (-ish) value of the object, if such makes sense.
- is_null
-
Returns TRUE if the object is an R
NULL
object. InREXP
's class hierarchy, this is the case only forStatistics::REXP::Null
. - is_vector
-
Returns TRUE if the object is an R vector object. In
REXP
's class hierarchy, this is the case only forStatistics::REXP::Vector
and its descendants.
OVERLOADS
REXP
overloads the stringification, eq
and ne
methods; subclasses further specialize for their types if necesssary.
BUGS AND LIMITATIONS
Classes in the REXP
hierarchy are intended to be immutable. Please do not try to change their value or attributes.
More is_*
accessors should be added.
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) 2014 by University of British Columbia.
This is free software, licensed under:
The GNU General Public License, Version 3, June 2007