1

data というデータフレームで R で SVD を実行しています

svd1 <- svd(scale(data))

を使用して結果をプロットします

plot(svd1$d^2/sum(svd1$d^2),xlab="Column",ylab="Percent of variance explained",pch=19)

プロットでは、列番号がデータフレームの列番号に対応していないことがわかりました(SVDで使用する列のサブセットに関係なく、最初の列は常に最高の分散を示します)。

私の質問は、プロットで列名 (または「実際の」インデックス) を取得するにはどうすればよいですか?

4

1 に答える 1

3

R のドキュメント (.../library/base/html/svd.html) によると:

d is a vector containing the singular values of x, of length min(n, p).

これらの特異値は入力行列全体から SVD アルゴリズムによって計算されるため、列名に基づいて特異値にラベルを付ける方法はありません。

于 2013-02-10T19:59:05.540 に答える