我試圖使用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
不幸的是,這並不工作K和我得到的錯誤信息:
不能使用字符串(「0」)的數組引用,而「嚴格裁判」在使用中/home/abdel/myperl/share/perl/5.10。 1/Statistics/PCA.pm line 189.
任何想法可能會出現什麼問題嗎?
我希望問題是明確的,否則請讓我知道如果你需要更多的信息!非常感謝!
謝謝!使用「data => \ @LoL_SVs」做了詭計!我喜歡這個網站。 – Abdel 2013-04-11 12:22:49
@Abdel是的,我也喜歡它。別客氣。 – TLP 2013-04-11 12:26:22