名称
SimpleR::Reshape 数据处理转换
说明
接口山寨自R语言的read.table
还有reshape2包:http://cran.r-project.org/package=reshape2
函数
å®ä¾åèxtåæ件夹read_table
支持 从文件或arrayref 按行读入数据,转换后输出新的 文件或arrayref
my $r = read_table(
'reshape_src.csv',
skip_head=>1,
conv_sub => sub { [ "$_[0][0] $_[0][1]", $_[0][2], $_[0][3] ] },
write_filename => '01.read_table.csv',
#skip_sub => sub { $_[0][3]<200 },
#return_arrayref => 1,
#sep=>',',
#charset=>'utf8',
);
melt
数据调整,参考R语言的reshape2包
my $r = melt('reshape_src.csv',
skip_head => 1,
names => [ qw/day hour state cnt rank/ ],
#skip_sub => sub { $_[0][3]<1000 },
id => [ 0, 1, 2 ],
measure => [3, 4],
melt_filename => '02.melt.csv',
);
cast
数据重组,参考R语言的reshape2包
my $r = cast('02.melt.csv',
cast_filename => '03.cast.csv',
names => [ qw/day hour state key value/ ],
id => [ 0, 1, 2 ],
measure => 3,
value => 4,
stat_sub => sub { my ($vlist) = @_; my @temp = sort { $b <=> $a } @$vlist; return $temp[0] },
result_names => [ qw/day hour state cnt rank/ ],
);