我正在尝试使用Statistics::PCA包对某些遗传变异进行 PCA。该包需要读取列表列表(如果我理解正确,那可以是数组数组,对吗?)。
下面是我的代码的一部分,我在其中为每个人创建数组(每个人都是一个实际的人类受试者,得到一个填充有 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
不幸的是,这不起作用,我收到错误消息:
在 /home/abdel/myperl/share/perl/5.10.1/Statistics/PCA.pm 第 189 行使用“strict refs”时,不能使用字符串 ("0") 作为 ARRAY ref。
知道这里可能出了什么问题吗?
我希望问题得到很好的说明,否则如果您需要更多信息,请告诉我!非常感谢!