The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

NAME

R::YapRI::Robject::Rattributes

A module to store R attributes for an object

SYNOPSIS

  use R::YapRI::Robject::Rattributes;

  my $rattr = R::YapRI::Rattributes->new();

  $rattr->set_names(["X", "Y"]);
  my @names = @{$rattr->get_names()};

  $rattr->set_dim([5,5]);
  my @dim = @{$attr->get_dim()};

  $rattr->set_dimnames([["a", "b", "c"], ["x", "y", "z"]]);
  my @dimnames_arefs = @{$rattr->set_dimnames()};

  $rattr->set_rownames(["x", "y", "z"]);
  my @rownames_arefs = @{$rattr->set_rownames()};
  
  $rattr->set_class("data.frame");
  my $class = $attr->get_class();

  $rattr->set_tsp($start, $end, $frequency);
  my ($start, $end, $frequency) = $attr->get_tsp();

DESCRIPTION

Create a R::YapRI::Robject::Rattributes object, used by R::YapRI::Robject to define the attributes for an Robject.

There are 5 basic attributes for R objects (names, dim, dimnames, class and tsp) (for more info http://cran.r-project.org/doc/manuals/R-lang.html#Attributes)

It also has an special case, row.names for data.frames.

AUTHOR

Aureliano Bombarely <aurebg@vt.edu>

CLASS METHODS

The following class methods are implemented:

(*) CONSTRUCTORS:

It has a simple constructor using new() function.

Any of the accessors can be used as function arguments to set the accessor value during the object creation.

constructor new

  Usage: my $rattr = R::YapRI::Robject::Rattributes->new($acc_href);

  Desc: Create a new R::YapRI::Robject::Rattributes object.

  Ret: a R::YapRI::Robject::Rattributes object

  Args: $acc_href, an accessor hash ref. with the following key/value pairs:
        names    => arrayref. of strings (generally used with vectors and lists)
        dim      => arrayref. of positive integers.
        dimnames => arrayref. of arrayref. of strings.
        rownames => arrayref. of rownames (generally used with data.frames)
        class    => an scalar defining the class
        tsp      => an arrayref. with three members: start, end and frequency.
        
  Side_Effects: Die if the accessor hashref. is not a hash ref. or it is 
                has a different accessor than names, dim, dimnames, class or
                tsp.

  Example: my $rattr = R::YapRI::Robject::Rattributes->new($acc_href);        

(*) ACCESSORS:

There are a couple of functions (get/set) for accessors

get/set_names

  Usage: my $names_aref = $rattr->get_names();
         $rattr->set_names($names_aref); 

  Desc: Get/Set the names attributes to Rattributes object

  Ret: Get: $names_aref, an array ref. with names attribute
       Set: None

  Args: Get: None
        Set: $names_aref, an array ref. with names attribute

  Side_Effects: Get: None
                Set: Die if the argument supplied is not an array ref.

  Example: my @names = @{$rattr->get_names()};
           $rattr->set_names(\@names); 

get/set_dim

  Usage: my $dim_aref = $rattr->get_dim();
         $rattr->set_dim($dim_aref); 

  Desc: Get/Set the dim (dimension) attribute to Rattributes object

  Ret: Get: $dim_aref, an array ref. with dim (integers) attribute
       Set: None

  Args: Get: None
        Set: $dim_aref, an array ref. with dim (integers) attribute

  Side_Effects: Get: None
                Set: Die if the argument supplied is not an array ref.
                     Die if the elements of the array ref. are not integers.

  Example: my @dim = @{$rattr->get_dim()};
           $rattr->set_dim(\@dim); 

get/set_dimnames

  Usage: my $dimnames_arefaref = $rattr->get_dimnames();
         $rattr->set_dimnames($dimnames_arefaref); 

  Desc: Get/Set the dimnames attribute to Rattributes object.

  Ret: Get: $dimnames_arefaref, an array ref. of array references 
            with dimnames attributes
       Set: None

  Args: Get: None
        Set: $dimnames_arefaref, an array ref. of array references 
             with dimnames attribute

  Side_Effects: Get: None
                Set: Die if the argument supplied is not an array ref.
                     Die if the elements of the array ref. are not array refs.

  Example: my @dimnames_aref = @{$rattr->get_dimnames()};
           $rattr->set_dimnames([ ['A', 'B'], ['x', 'y'] ]); 

get/set_rownames

  Usage: my $rownames_aref = $rattr->get_rownames();
         $rattr->set_rownames($rownames_aref); 

  Desc: Get/Set the row.names attributes to Rattributes object

  Ret: Get: $rownames_aref, an array ref. with row.names attribute
       Set: None

  Args: Get: None
        Set: $rownames_aref, an array ref. with row.names attribute

  Side_Effects: Get: None
                Set: Die if the argument supplied is not an array ref.

  Example: my @rownames = @{$rattr->get_rownames()};
           $rattr->set_rownames(\@rownames); 

get/set_class

  Usage: my $class = $rattr->get_class();
         $rattr->set_class($class); 

  Desc: Get/Set the class attribute to Rattributes object

  Ret: Get: $class, a class attribute for an R object
       Set: None

  Args: Get: None
        Set: $class, a class attribute for an R object

  Side_Effects: Get: None
                Set: Die if no arguments is supplied to this function

  Example: my $class = @{$rattr->get_class()};
           $rattr->set_class($class); 

get/set_tsp

  Usage: my $tsp_aref = $rattr->get_tsp();
         $rattr->set_tsp($tsp_aref); 

  Desc: Get/Set the tsp (time series) attribute to Rattributes object

  Ret: Get: $tsp_aref, a tsp array ref. attribute for an R object with three
            elements: $start, $end, $frequency.
       Set: None

  Args: Get: None
        Set: $tsp_aref, a tsp array ref. attribute for an R object with three
            elements: $start, $end, $frequency.

  Side_Effects: Get: None
                Set: Die if no arguments is supplied to this function.
                     Die if the argument provided is not an array ref.
                     If the array ref. supplied has more than three elements,
                     that array will be modify and the elements beyond 3 will
                     be deleted (last index of the array will be set to 2)

  Example: my ($start, $end, $frequency) = @{$rattr->get_tsp()};
           $rattr->set_class([$start, $end, $frequency]); 

ACKNOWLEDGEMENTS

Lukas Mueller

Robert Buels

Naama Menda

Jonathan "Duke" Leto

COPYRIGHT AND LICENCE

Copyright 2011 Boyce Thompson Institute for Plant Research

Copyright 2011 Sol Genomics Network (solgenomics.net)

This program is free software; you can redistribute it and/or modify it under the same terms as Perl itself.