NAME

Statistics::R::REXP::List - an R generic vector (list)

VERSION

version 1.0002

SYNOPSIS

use Statistics::R::REXP::List

my $vec = Statistics::R::REXP::List->new([
    1, '', 'foo', ['x', 22]
]);
print $vec->elements;

DESCRIPTION

An object of this class represents an R list, also called a generic vector (VECSXP). List elements can themselves be lists, and so can form a tree structure.

METHODS

Statistics::R::REXP:List inherits from Statistics::R::REXP::Vector, with no added restrictions on the value of its elements. Missing values (NA in R) have value undef.

sexptype

SEXPTYPE of generic vectors is VECSXP.

to_pl

Perl value of the list is an array reference to the Perl values of its elements, but using a scalar value to represent elements that are atomic vectors of length 1, rather than a one-element array reference.

The idea is that in R, 1:3, and list(1, 2, 3) can often be used interchangeably, even though the list is really composed of three integer vectors, each of length one. Now, both will have native Perl representation of [1, 2, 3].

This only applies to elements that are atomic vectors. An element of type list will always be represented as an array reference:

list(list(1), list(2), list(3))->to_pl -> [ [ 1 ], [ 2 ], [ 3 ] ]

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