2016-08-11 21 views
1

PCAバイプルラベルに標準の番号ではなくサンプル名を付けようとしています。私は、コードを使用しています:以下のプロットを提供サンプル名にPRcompを使用してPCAからラベルを変更する方法

PRCOMP1 <- prcomp(~ Max + Min + Range + Average + P10 + P20 + 
P50 + P100 + D10 + D20 + D50 + D100 + D500, 
data = turbidity, 
na.action = na.omit, 
scale = TRUE 

biplot(PRCOMP1, cex = 0.8, choices=c(1,2)) 

を - 任意の私は、データシートの列ラベルされたサンプルでのポイントにラベルを付けることができます知っているん。

また、矢印の色を変更する簡単な方法はありますか?どんな助けでも大歓迎です。

答えて

0

あなたは、サンプルの列の値を使用して、入力データの列に名前を付けます:あなたのバイプロット上

row.names(turbidity) <- turbidity$Sample 

ドットは、その後、それらの同族サンプル名でラベル付けされます。私は例をみてください

+1

NBあなたは引用ブロック( '>')よりも見栄えの良いコードフォーマットブロック(4スペース)を使用したいと考えています – AlexR

+0

こんにちはマヌエル、あなたの答えをありがとう。 row.names変数を計算することができましたが、これはbiplotラベルを変更しません。私はさまざまなコードに挿入しようとしましたが、プロット上の何かを変更することはできません。これはどこか他の場所に挿入する必要がありますか? –

0

#creating an example data frame with 5 numeric and one character variables 
mydata1 <- as.data.frame(matrix(rnorm(100, 0, 2), ncol = 5)) 
mydata1$sample <- c(sapply(1:20, function(i) paste("s", i, sep = ""))) 
#view of the df 
mydata1 
     V1   V2   V3   V4   V5 sample 
1 1.7398057 -0.8074246 0.009826488 0.58566480 3.88569625  s1 
2 -1.3259889 -2.4359229 -1.258855445 2.65124987 -2.64137545  s2 
3 -2.3961068 -0.3108402 -1.330362255 -0.35209302 -2.39282594  s3 

これは6つの変数によって20行でこの文

biplot(prcomp(mydata1[,-6])) 

をデータフレームは、サンプルラベルなしで数字のみをプロットを返します。

#naming rows of the df with the sample column value 
row.names(mydata1) <- mydata1$sample 
#viewing the df 
head(mydata1) 
     V1   V2   V3   V4   V5 sample 
s1 1.739806 -0.8074246 0.009826488 0.5856648 3.8856962  s1 
s2 -1.325989 -2.4359229 -1.258855445 2.6512499 -2.6413755  s2 
s3 -2.396107 -0.3108402 -1.330362255 -0.3520930 -2.3928259  s3 
#plotting 
biplot(prcomp(mydata1[,-6])) 

後者のプロットでは、そのラベルで観測値がレンダリングされます。 それがあなたの頭にあったのかどうか教えてください。

+1

pcaから見栄えの良いスコアとローディングプロットを発行するためのprcomp()の代替案は、FactoMineRパッケージとfactoextraパッケージによって提供されています。 –

+0

こんにちはマヌエル、追加ありがとう。これは私が念頭に置いていたのですが、コード 'row.names(mydata1)< - mydata1 $ sample'は動作しません。私は次のメッセージを受け取りました。 'row.names < - 。data.frame'のエラー( '* tmp *'、value = value):' row.names 'の重複は許されませんさらに、警告メッセージ:'行を設定する際に一意でない値。 names ':' '' –

+0

ああ、データフレームの行名は一意でなければなりません。濁度データセットのサンプル列の一部のレコードは、複数回出現する必要があります(レプリケートを報告することがあります)。次のような、サンプル値に一意の文字を追加することです。row.names(mydata1)< - sapply(1:dim(mydata1)[1]、function(i)paste(i、mydata1 $ sample [i]、sep = ""))このオプションの欠点は、サンプルラベルが末尾の数字で表示されることです。 –

関連する問題