Работает ли статистика :: Метод описательного процентиля так, как задокументировано? - PullRequest
3 голосов
/ 11 октября 2010
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

Статистика :: Описательный документ .

1 Ответ

3 голосов
/ 11 октября 2010

Тот же результат на ActiveState 5.12.2 64-разрядной на платформе Windows.Вы ответили на свой вопрос: он не работает так, как задокументировано.

#!/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.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...