R で主成分分析の結果に対して最小判別分析を実行しており、累積変動の特定のしきい値を表す PC の最小数に基づいて、使用する適切な PC の数を計算しています。いくつかの以前の研究の方法論に従って、最高の再分類率。
ループを使用してさまざまな累積 PC 数の再分類率を計算していますが、RMarkdown レポートの data.frame として出力したいと考えています。これは私が使用しているコードです。
for (j in 1:21){
vars<-sum(diag(prop.table(table(
trainingframe$locus,
lda(data.frame(trainingframe[-c(1)])[1:j],grouping=trainingframe$locus,CV=TRUE,prior = c(1,1,1)/3)$class))))
print(data.frame(j,vars))
}
このコードtrainingframe
にはトレーニング データセットがありlocus
、lda が分類する対象のカテゴリ変数です。最初の列は遺伝子座であるため選択されていません。元のデータを提供することはできませんが、これは、多数の変数の主成分と、分類に関心のあるいくつかのカテゴリ変数を含むデータセットで再現可能である必要があります。
これは、スクリプトから取得した結果です。
j vars
1 1 0.512605
j vars
1 2 0.5882353
j vars
1 3 0.7058824
j vars
1 4 0.6806723
j vars
1 5 0.6722689
j vars
1 6 0.6638655
j vars
1 7 0.6722689
j vars
1 8 0.6386555
j vars
1 9 0.6470588
j vars
1 10 0.6554622
j vars
1 11 0.6554622
j vars
1 12 0.7226891
j vars
1 13 0.7142857
j vars
1 14 0.6890756
j vars
1 15 0.6806723
j vars
1 16 0.6806723
j vars
1 17 0.6890756
j vars
1 18 0.6554622
j vars
1 19 0.6470588
ただし、ご覧のとおり、印刷された結果は、すべての分析の結果を含む 1 つのデータ フレームではなく、結果ごとに多数の独立したデータ フレームを印刷します。
私が作りたいのは、次のようなdata.frameです...
j vars
1 0.5126050
2 0.5882353
3 0.7058824
4 0.6806723
5 0.6722689
6 0.6638655
7 0.6722689
8 0.6386555
9 0.6470588
10 0.6554622
11 0.6554622
12 0.7226891
13 0.7142857
14 0.6890756
15 0.6806723
16 0.6806723
17 0.6890756
18 0.6554622
19 0.6470588
上記のコードを書き直して、ここに示されている最後のデータ フレームを生成する方法を見つけようとしています。