help(prcomp)
またはを実行すると、ヘルプファイルは、関数によって返されるオブジェクトに?prcomp
含まれるすべてのものを通知します。prcomp()
プロットしたいものを選択し、よりも詳細に制御できる関数を使用して実行する必要がありますbiplot()
。
ヘルプファイルで問題が明確にならない場合のより一般的なトリックはstr()
、prcompオブジェクト(この場合はpca.Sample)で実行して、そのすべての部分を確認し、必要なものを見つけることです(str()
Rの内部構造をコンパクトに表示します)。物体。 )
Rのサンプルデータの例を次に示します。
# do a pca of arrests in different states
p<-prcomp(USArrests, scale = TRUE)
str(p)
醜くて長すぎて含めることができませんが、p $ xの状態は行名であり、主成分上の位置は列であることがわかります。plot()
これで武装して、withやtext()
(ラベルの場合)など、好きなようにプロットできます。
# plot and add labels
plot(p$x[,1],p$x[,2])
text(p$x[,1],p$x[,2],labels=rownames(p$x))
多くの観測値を使用して散布図を作成している場合、ラベルが読み取れない可能性があります。したがって、次のように識別できる、より極端な値のみにラベルを付けることができますquantile()
。
#make a new dataframe with the info from p we want to plot
df <- data.frame(PC1=p$x[,1],PC2=p$x[,2],labels=rownames(p$x))
#make sure labels are not factors, so we can easily reassign them
df$labels <- as.character(df$labels)
# use quantile() to identify which ones are within 25-75 percentile on both
# PC and blank their labels out
df[ df$PC1 > quantile(df$PC1)["25%"] &
df$PC1 < quantile(df$PC1)["75%"] &
df$PC2 > quantile(df$PC2)["25%"] &
df$PC2 < quantile(df$PC2)["75%"],]$labels <- ""
# plot
plot(df$PC1,df$PC2)
text(df$PC1,df$PC2,labels=df$labels)