Statistics::PCAパッケージを使用して、いくつかの遺伝子バリアントに対して PCA を実行しようとしています。このパッケージでは、リストのリストを読み取る必要があります (私が正しく理解していれば、それは配列の配列である可能性がありますよね?)。
以下は、各個人の配列を作成するコードの一部です (各個人は、「SV」と呼ばれる遺伝的変異の有無を表す 0 と 1 で満たされた配列を取得する実際の人間の被験者です)。 @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 Web サイトで説明されているようにデータをロードしようとします (段落 *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 行目で「厳密な参照」が使用されている間は、文字列 (「0」) を ARRAY 参照として使用できません。
ここで何がうまくいかないのでしょうか?
問題が明確に特定されていることを願っています。それ以外の場合は、さらに情報が必要な場合はお知らせください。どうもありがとう!