App-summ
view release on metacpan or search on metacpan
script/summ view on Meta::CPAN
my %Opts = (
calc_count => 1,
calc_mode => 1,
calc_min => 1,
calc_max => 1,
calc_mean => 1,
calc_median => 1,
calc_variance => 1,
calc_stddev => 1,
calc_percentiles => [25, 75],
calc_covariance => 0,
calc_correlation => 0,
);
sub parse_cmdline {
my $res = GetOptions(
'count!' => \$Opts{calc_count},
'mode!' => \$Opts{calc_mode},
'max!' => \$Opts{calc_max},
'min!' => \$Opts{calc_min},
'mean!' => \$Opts{calc_mean},
'median!' => \$Opts{calc_median},
'variance!' => \$Opts{calc_variance},
'stddev!' => \$Opts{calc_stddev},
'no-percentile|P' => sub { $Opts{calc_percentiles} = [] },
'percentile|p=s' => sub {
my $p = int($_[1]);
die "summ: Invalid percentile $p, must be between 0 and 100\n"
if $p < 0 || $p > 100;
push @{ $Opts{calc_percentiles} }, $p
unless grep { $p == $_ } @{ $Opts{calc_percentiles} };
},
'covariance!' => \$Opts{calc_covariance},
'correlation!' => \$Opts{calc_correlation},
'help|h' => sub {
print <<USAGE;
Usage:
summ [OPTIONS]... [INPUT]...
summ --help
For more details, see the manpage/documentation.
script/summ view on Meta::CPAN
}
if ($Opts{calc_median}) {
printf "Median: %s\n", $sd->median;
}
if ($Opts{calc_variance}) {
printf "Variance: %s\n", $sd->variance;
}
if ($Opts{calc_stddev}) {
printf "Std. dev.: %s\n", $sd->standard_deviation;
}
if (@{ $Opts{calc_percentiles} }) {
require Lingua::EN::Numbers::Ordinate;
for my $p (sort { $a <=> $b } @{ $Opts{calc_percentiles} }) {
printf "%s percentile: %s\n",
Lingua::EN::Numbers::Ordinate::ordinate($p),
$sd->percentile($p);
}
}
if ($Opts{calc_covariance}) {
require Statistics::Basic;
printf "Covariance: %s\n", Statistics::Basic::covariance(
\@nums, \@nums2);
}
if ($Opts{calc_correlation}) {
require Statistics::Basic;
printf "Correlation: %s\n", Statistics::Basic::correlation(
script/summ view on Meta::CPAN
Do not calculate median.
=item * --no-variance
Do not calculate variance.
=item * --no-stddev
Do not calculate standard deviation.
=item * --no-percentile, -P
Do not calculate any percentiles. The default is to calculate 25th and 75th
percentiles.
=item * --percentile=P, -p P
Add a percentile to calculate, for example: C<-p 5 -p 95> to add calculating 5th
and 95th percentiles. The default is to only calculate 25th and 75th
percentiles.
=item * --covariance
Calculate covariance. This requires every line to contain two numbers intead of
one.
=item * --correlation
Calculate correlation. This requires every line to contain two numbers intead of
one.
( run in 0.343 second using v1.01-cache-2.11-cpan-709fd43a63f )