The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

Name

SPVM::R::DataFrame - Short Description

Description

The R::DataFrame class in SPVM represents a data frame.

Usage

  use R::OP::DataFrame as DFOP;
  use R::OP::Int as IOP;
  use R::OP::Double as DOP;
  use R::OP::String as STROP;
  use R::OP::Time::Piece as TPOP;
  
  # Create a R::DataFrame object
  my $data_frame = DFOP->data_frame;
  
  $data_frame->set_col("name", STROP->c(["Ken", "Yuki", "Mike"]));
  $data_frame->set_col("age", IOP->c([19, 43, 50]));
  $data_frame->set_col("weight", DOP->c([(double)50.6, 60.3, 80.5]));
  $data_frame->set_col("birth", TPOP->c(["1980-10-10", "1985-12-10", "1970-02-16"]));
  
  my $data_frame_string = $data_frame->to_string;
  
  my $slice_data_frame = $data_frame->slice(["name", "age"], [IOP->c([0, 1])]);
  
  $data_frame->sort(["name", "age desc"]);
  
  my $nrow = $data_frame->nrow;
  
  my $ncol = $data_frame->ncol;
  
  my $dim = $data_frame->first_col->dim;

Details

This class is a port of data frame features of R language.

Fields

colobjs_list;

has colobjs_list : List of R::DataFrame::Column;

colobjs_indexes_h

has colobjs_indexes_h : Hash of Int;

Class Methods

static method new : R::DataFrame ();

Instance Methods

colnames

method colnames : string[] ();

exists_col

method exists_col : int ($colname : string);

colname

method colname : string ($col : int);

colindex

method colindex : int ($colname : string);

col_by_index

method col_by_index : R::NDArray ($col : int);

first_col

method first_col : R::NDArray ();

col

method col : R::NDArray ($colname : string);

set_col

method set_col : void ($colname : string, $ndarray : R::NDArray);

insert_col

method insert_col : void ($colname : string, $ndarray : R::NDArray, $before_colname : string = undef);

ncol

method ncol : int ();

nrow

method nrow : int ();

remove_col

method remove_col : void ($colname : string);

clone

method clone : R::DataFrame ($shallow : int = 0);

to_string

method to_string : string ();

slice

method slice : R::DataFrame ($colnames : string[], $asix_indexes_product : R::NDArray::Int[]);

set_order

method set_order : void ($indexes_ndarray : R::NDArray::Int);

sort

method sort : void ($colnames_with_order_by : string[]);

order

method order : R::NDArray::Int ($colnames_with_order_by : string[]);

See Also

Copyright & License

Copyright (c) 2024 Yuki Kimoto

MIT License