私はRに少し慣れていないので、基本的な質問を許してください。
完全なデータセット (358 のサイト、40 の非生物パラメーター、100 の種の観察) で CCA を実行します。
library(vegan)
env <- read.table("env.txt", header = TRUE, sep = "\t", dec = ",")
otu <- read.table(otu.txt", header = TRUE, sep = "\t", dec = ",")
cca <- cca(otu~., data=env)
cca.plot <- plot(cca, choices=c(1,2))
vif.cca(cca)
ccared <- cca(formula = otu ~EnvPar1,2,n, data = env)
ccared.plot <- plot(ccared, choices=c(1,2))
orditorp(ccared.plot, display="sites")
これは、最初の列でサンプル名を使用しなくても機能します (最初は、数値のサンプル名を含む最初の列が変数として解釈されたため、その情報なしでテーブルを使用しました。orditorp を介してサイト名をプロットに追加すると、「row.プロットでは name=n" です。) ただし、サンプル名を使用したいです。サンプル名情報を使用して、両方のテーブルで row.names=1 を試しました。
envnames <- read.table("envwithnames.txt", header = TRUE, row.names=1, sep = "\t", dec = ",")
otunames <- read.table("otuwithnames.txt", header = TRUE, row.names=1, sep = "\t", dec = ",")
、およびenv/otu/envnames/otunames の任意の組み合わせ。cca はいずれの場合もうまく機能しましたが、どのプロット コマンドでも結果が得られました
plot.ccarownames <- plot(cca(ccarownames, choices=c(1,2)))
Error in rowSums(X) : 'x' must be numeric
私の 2 番目の問題はそれに関連しています。358 のサイトが 6 つのグループ (4x60、2x59) にグループ化されています。完全なマトリックスには、この情報が追加の列として推測されます。行名の問題を解決できなかったので、とにかく公称データにさらにこだわっています。元の行列には、最初の列 (サンプル名、数値ですが、名義に簡単に変換できます) と 2 番目の列 (グループ ID、名義) が含まれ、その後に生物学的観察が続きます。
私がしたいこと:
- グループごとにサイトを着色している 6 つのグループすべてを含む CCA。
- 1 つのグループのデータのみを含む CCA (個々の入力テーブルを手動で作成しない)
- 私の元のサンプル名を使用している CCA プロット。
どんな助けでも大歓迎です!本当に、私は昨日の朝からそれで立ち往生しています:/