Scroll to navigation

Statistics::R::REXP::List(3pm) User Contributed Perl Documentation Statistics::R::REXP::List(3pm)

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 of generic vectors is "VECSXP".
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
2022-02-10 perl v5.34.0