0

私はRに非常に慣れていないので、これは非常にばかげた質問かもしれませんが、今はかなり行き詰まっています。

私は現在、どの環境要因がコミュニティの分布により大きな影響を与えているかを確認するために、自分のデータに対して正規対応分析を実行しようとしています。ビーガンパッケージを使用しています。私のデータは、環境要因のテーブル (データセット EFamoA) と存在量マトリックスのテーブル (データセット AmoA) で構成されています。39 の環境要因と 334 の種を含む 41 の土壌があります。数値ではない変数のデータを消去した後、数式表記を使用して cca 分析を実行しようとします。

CCA.amoA <- cca (AmoA ~ EFamoA$PH + EFamoA$LOI, data = EFamoA, 
scale = TRUE, na.action = na.omit)

しかし、その後、次のエラーが発生します。

Error in weighted.mean.default(newX[, i], ...) : 
'x' and 'w' must have the same length

ここからどこへ行くべきか本当にわかりませんし、この問題に関してはどこにもあまり見つかりませんでした (これは、私がやっている非常に基本的な間違いであるに違いないと思います)。私の環境要因データは標準化されていません。cca ヘルプ ファイルで、アルゴリズムが標準化を行っていることを確認しましたが、前に標準化する必要があるのではないでしょうか? (スケール= TRUEは種のみです)。データを行列に変換する必要がありますか?

私はこれにしばらく苦労してきたので、私の主張を十分に明確にしたことを願っています。

編集:私の環境データにはNA値があります

4

1 に答える 1

0

よし、私は自分でそれをすべて理解することができましたが、それは本当にばかげたことでした。私の存在量データには列として土壌、行として種がありましたが、環境因子 (EF) データには行として土壌、列として EF がありました。

私のデータを使用t()して、私は自分のdata.frameを転置し(そして付随的にそれをマトリックスに変換しました)、cca()作業しました(「長さ」は同じだったと思います)。データを個別に転置し、転置済みのデータをロードすることもできます。このt()アプローチにより、まったく新しいファイルを作成する必要がなくなる可能性がありますが (私の場合のようにデータが異なる行を使用して編成されている場合)、データをマトリックスに変換し、場合によってはこれが望ましくない場合があります。解決するのは非常に単純で明白なことであることが判明しました(ただし、しばらく時間がかかりました)。

于 2014-07-02T14:39:51.707 に答える