Perl ошибка объектов: невозможно найти метод объекта "dump_data" через пакет "Статистика :: Последовательности :: Выполнения" - PullRequest
1 голос
/ 06 марта 2020

Я тестирую, чтобы использовать один из модулей perl, Статистика :: Последовательности :: Выполнения. Я попытался запустить пример в пути ниже, но я получаю ошибку. https://metacpan.org/pod/Statistics :: Sequence :: Runs

Приведенный ниже код является примером кода, а последняя строка является сообщением об ошибке, которое выводится при выполнении этого кода.

use Statistics::Sequences::Runs;
use Statistics::Data::Dichotomize;
my @targets = (qw/p c p w s p r w p c r c r s s s s r w p r w c w c/);
my @responses = (qw/p c s c s s p r w r w c c s s r w s w p c r w p r/);

# Test for runs of matches between targets and responses:
my $runs = Statistics::Sequences::Runs->new();
my $ddat = Statistics::Data::Dichotomize->new();
$runs->load($ddat->match(data => [\@targets, \@responses]));
$runs->dump_data(delim => ' '); # have a look at the match sequence; prints "1 1 0 0 1 0 0 0 0 0 0 1 0 1 1 0 0 0 1 1 0 0 0 0 0\n"
print "Probability of these many runs vs expectation: ", $runs->test(), "\n"; # 0.51436
# or test for runs in matching when responses are matched to targets one trial behind:
print $runs->test(data => $ddat->match(data => [\@targets, \@responses], lag => -1)), "\n"; # 0.73766

Не удается найти метод объекта "dump_data" через пакет "Statistics :: Sequence :: Runs" в строке example.pl 10.

Кто-нибудь знает, как исправить эту ошибку?

1 Ответ

2 голосов
/ 06 марта 2020
  • ->dump_data должно быть ->dump_vals.
  • ->tests должно быть ->p_value (в обоих случаях).

Хотя не относится к Вышеуказанные изменения наткнулись на еще одну ошибку. В статистике :: Последовательности test,

my $statname = $args->{'stat'} || q{};
my $class    = __PACKAGE__ . q{::} . ucfirst($statname);
eval {require $class};
if ($@) {
    croak __PACKAGE__, " error: Requested sequences module '$class' is not available";
}

должны быть

my $statname = $args->{'stat'} || croak("Required stat argument missing");
my $class    = __PACKAGE__ . q{::} . ucfirst($statname);
my $pkg      = $class =~ s{::}{/}gr . '.pm';
eval {require $pkg };
if ($@) {
    croak __PACKAGE__, " error: Requested sequences module '$class' is not available";
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...