DOKK / manpages / debian 12 / libstatistics-r-io-perl / Statistics::R::REXP::List.3pm.en
Statistics::R::REXP::List(3pm) User Contributed Perl Documentation Statistics::R::REXP::List(3pm)

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

version 1.0002

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

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.

"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 ] ]"

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.

See Statistics::R::IO for support and contact information.

Davor Cubranic <cubranic@stat.ubc.ca>

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