NAME

Statistics::R::REXP - base class for R objects (SEXPs)

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. In REXP's class hierarchy, this is the case only for Statistics::REXP::Null.

is_vector

Returns TRUE if the object is an R vector object. In REXP's class hierarchy, this is the case only for Statistics::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