---
name: "Statistics::R::REXP"
section: "3pm"
platform: "linux"
package: "libstatistics-r-io-perl"
version: "1.0002-2"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Statistics::R::REXP"
---

# Statistics::R::REXP(3pm)

base class for R objects ("SEXP"s)

## NAME

Statistics::R::REXP - base class for R objects ("SEXP"s)

## VERSION

version 1.0002

## 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 will die if you call `"new"` on it), 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.

- sexptype

  Returns the *name* of the corresponding R SEXP type, as listed in SEXPTYPE \<http://cran.r-project.org/doc/manuals/r-release/R-ints.html#SEXPTYPEs\>.

- 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.

- inherits CLASS\_NAME

  Returns TRUE if the object is an instance of R S3-style class `"CLASS_NAME"`, in the same fashion as the R function `"base::inherits <http://stat.ethz.ch/R-manual/R-patched/library/base/html/class.html>"`.

## 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) 2017 by University of British Columbia.

This is free software, licensed under:

```
  The GNU General Public License, Version 3, June 2007
```
