2016-06-25 6 views
0

データセット私は、-のように見ています。理由は、r_1..r_13に6つの国があります。私はこのデータセットにPCAを適用して各国の重要な理由を見つけ出したい 質問したいのは、各国のPCAを各国のために読み込まずに、どのようにPCAを走らせることができるかということです。 。 はまた、変数を観察し、それに応じて、私は、変数の重要性を決めるであろうと、私は回転行列を計算した後、私はPCのが最も相関しているチェックします、PCAデータを一度だけ読み込み、異なる変数に同じ関数を適用する

pca<-prcomp(numeric,center=T,scale=T) 
    summary(pca) 
    eigen_val<-pca$sdev ^2 
    sum(eigen_val) 
    prop_var<-round(eigen_val/sum(eigen_val),4) 
    round(sum(prop_var[1:13]),4) 
    load<-pca$rotation 

を行うために使用していたコードを確認してください。(上より多くのPCの変数の相関関係は、変数の重要性です) アプローチが正しいかどうかを教えてください! ありがとうございます!

+0

ようこそstackOverflow。この質問は、詳細(コードとデータ)については短いです。これらのヒントを見て、[最小限の例](http://stackoverflow.com/help/mcve)を作成してください。それは言われている、[データのリストを使って作業している]グレゴールの記事(http://stackoverflow.com/questions/17499013/how-do-i-make-a-list-of-data-frames)は、 Rのベストプラクティスは 'split'と' lapply'を使ってあなたの質問に答えます。 – lmo

答えて

0

ここでは、目的のフォーマットで結果を得るために微調整できる簡単な出発点があります。 のirisデータセットで作業しているとし、それぞれSpeciesについてpcaとしたいとします。データの各国でpcaをどのようにしたいかのようにします。

library(caret) 
data(iris) 
Iris <- split(iris, iris$Species) 
for(i in 1:length(Iris)){ 
    assign(paste0("pca", i), prcomp(Iris[[i]][which(names(iris)!="Species")], center=T, scale.=T)) 
} 
+0

ありがとうalott Gaurav !!私のアプローチが正しいかどうかをお聞かせください。また、forループの結果を画面に表示する代わりに保存するにはどうしたらいいですか?また、各国/種の回転行列から上位6つおよび最下位の最も関連する要素を計算するにはどうすればよいですか? – Kavya

+0

あなたのアプローチがうまくいくようです。上記のコードを編集する代わりに 'pca'を保存するために私のコードを編集しました。あなたは 'for'ループの中でもっと多くの計算を行い、それらを変数に格納するために同じ' assign'アプローチを使うことができます。ローテーションの最も重要な要素を見るには、 'summary'コマンドを使います。このリンクは詳細を助けるかもしれません:http://www.r-bloggers.com/computing-and-visualizing-pca-in-r/ –

+0

私がリストに保存された様々なファイルを処理している場合、私はこれらのファイルを国別に分割しました(変数は賢明です)。 – Kavya

関連する問題