2017-02-21 7 views
0

私は、Rパッケージ、ビーガンを使用してコミュニティデータからNMDSアラインメントプロットを生成しています。選択したものの重要度に対応する長さのベクトル種。表示されている矢印を、データの上位4分の1にある種に限定するにはどうすればよいですか?私は各ベクトルの長さを計算することができますが、希望の標準に合った矢印に印刷する矢印をどのように制限するかはわかりません。例えば、データのサブセットのベクトルを含むジョイントプロット

require(vegan) 

data(dune) mds <- metaMDS(dune) plot(mds$points[,1], mds$point[,2]) arrows(0, 0, mds$species[,1], mds$species[,2], col = "grey50")

# for the length of ea arrow for ea sp:

hyp <- sqrt(mds$species[,1]^2 + mds$species[,2]^2)

おかげで...

+0

(1)整理プロットでは必ず「asp = 1」を使用してください。これは、あなたが完全関数を使用して 'plot(mds、dis =" site ")'を発行すると自動的に行われますが、もっと面倒なコードを使用したい場合は 'asp = 1'を追加してください。 (2) 'hyp < - sqrt(rowSums(scores(mds、dis =" sp ")^ 2))'を使うほうがはるかに簡単です。 (3) 'metaMDS'結果のvegan' plot'、 'text'、' points'関数には、名前のように使用できる 'select'引数があります。しかし、それは矢印のために使用することはできませんが、なぜ種のスコアのために矢印を使用するのか理解できません。 –

+0

ありがとうございました。私は本当に情報に感謝し、頼んで、ボランティアしました。種のスコアのための矢印まで - あなたは正しい。最高の誤解。私は私よりも情報が少ない同僚を満足させようとしていました。あなたは私にそれを考えさせてうれしいです。 –

答えて

0

ImportantSpecies行は、どの点が上位四分位にあるかを識別する。表示されているように、それらの点だけをプロットするために使用することができます。

ImportantSpecies = which(hyp > quantile(hyp, 0.75) 

plot(mds$points[ImportantSpecies,1], mds$point[ImportantSpecies,2]) 
arrows(0, 0, mds$species[ImportantSpecies,1], 
      mds$species[ImportantSpecies,2], col = "grey50") 
関連する問題