Statistics :: Descriptive percentile方法是否记录在案?

时间:2010-10-11 11:07:34

标签: perl statistics

use strict;
use warnings;
use Statistics::Descriptive;
use 5.012;

my @data = ( -2, 7, 7, 4, 18, -5 );
my $stat = Statistics::Descriptive::Full->new();
$stat->add_data(@data);
say ($stat->percentile(100) // "undef"); # return 18. OK.
say ($stat->percentile(0) // "undef"); # return undef instead of "-inf". see doc below

Statistics::Descriptive doc

1 个答案:

答案 0 :(得分:3)

Windows平台上64位ActiveState 5.12.2的结果相同。你回答了自己的问题:它没有记录的那样。

#!/usr/bin/perl -w
use strict;
use warnings;
use Statistics::Descriptive;
use Math::Bigint;

use 5.012;

my @data = ( -2, 7, 7, 4, 18, -5 );
my $stat = Statistics::Descriptive::Full->new();
$stat->add_data(@data);
say(Math::BigInt->is_inf($stat->percentile(0)));

返回0

修改:正如rafl所指出的那样,在Windows系统上perl -e "print(9**9**9);"会提供1.#INF而不是inf。由于inf显然尚未在我的版本中实现,因此Statistics包将无法返回inf并返回undefined。

Edit2:事实证明OP适用于Linux并且可以返回inf,错误可能是Statistics::Descriptive包固​​有的。