Я пытаюсь использовать пакет Statistics::PCA для проведения PCA на некоторых генетических вариантах. Пакет требует чтения в списке списков (если я правильно его понял, это может быть массив массивов, верно?).perl (Statistics :: PCA): Невозможно использовать строку («0») как ARRAY ref, а «strict refs»
Ниже приведена часть моего кода, где я создаю массивы для каждого человека (каждый человек является фактическим человеком, который получает массив, заполненный 0 и 1, которые представляют наличие или отсутствие генетического варианта, называемого «SV»,), а затем толкать их в моем массиве массивов называемые @LoL_SVs:
my @LoL_SVs;
foreach (@individuals) {
my $ind = $_;
foreach (@all_SVs) {
if ($SV{$ind}{$_} != 1) {
push(@{$SVs{$ind}}, "0");
}
if ($SV{$ind}{$_} == 1) {
push(@{$SVs{$ind}}, "1");
}
}
push @LoL_SVs, [ @{$SVs{$ind}} ];
}
затем я пытаюсь загрузить данные, как описано на сайте CPAN модуля (см пункт * load_data *):
use Statistics::PCA;
my $pca = Statistics::PCA->new;
$pca->load_data ({ format => 'table', data => @LoL_SVs, });
#^this line is where it goes wrong
К сожалению, этого не происходит к, и я получаю сообщение об ошибке:
Не можете использовать строку («0») как ARRAY реф в то время как «строгие рефов» в использовании в /home/abdel/myperl/share/perl/5.10. 1/Statistics/PCA.pm line 189.
Любая идея, что может пойти не так, как надо?
Я надеюсь, что проблема хорошо указана, иначе, пожалуйста, дайте мне знать, если вам нужна дополнительная информация! Большое спасибо!
Спасибо! используя «data => \ @LoL_SVs» сделал трюк! Мне нравится этот сайт. – Abdel
@ Abdel Да, мне тоже это нравится. Пожалуйста. – TLP