0

1つのエラーと戦うのに問題があります。実行しようとしている行は次のとおりです。

library(vegan)
adonis(data = dset, adiv ~ N+P+K)

失敗メッセージを返します。

Error in rowSums(x, na.rm = TRUE) : 
  'x' must be an array of at least two dimensions

aov(data = dset, adiv ~ N+P+K) が正常に機能するため、データセットにはすべて問題ないようです。一部の関数がデータ フレームのディメンションを削除したときにこのようなエラーが発生することは知っていますが、この場合の修正方法はわかりません。

編集。私のデータセットの一部を追加します。

treatment   N   P   K   M   adiv
N   1   0   0   0   0.2059
P   0   1   0   0   0.20856
K   0   0   1   0   0.22935
O   0   0   0   0   0.10729
NP  1   1   0   0   0.30674
NK  1   0   1   0   0.30509
PK  0   1   1   0   0.30606
NPK+    1   1   1   1   0.50389
NPK 1   1   1   0   0.40731
manure  0   0   0   1   0.2085

アドニスを実行する前に、治療値を次のように係数に変換します。

dataset$N <- as.factor(dat$N)
dataset$P <- as.factor(dat$P)
dataset$K <- as.factor(dat$K)
dataset$M <- as.factor(dat$M)

次に、関数を実行してエラーを取得しようとします。すでに述べたように、aov() または lm() を試すと、すべてがうまく機能します。

4

1 に答える 1

4

あなたの質問には再現可能なものがないため、これは推測です。ただし、単変量応答を使用すると、同様のエラーが発生するadonis 可能性があります。これは多変量応答を対象としており、単変量応答では機能しない可能性があります。adonisヘルプページは で読むことができ、?adonis式の左側は「非類似度オブジェクト ( class から継承"dist") またはデータフレームまたは行列のいずれか」である必要があると書かれています。これに従うと、試したときに役立ちます(ただし、実際にあなたの例を再現することはできません): lhs ofas.matrix(Nitrososphaearaceae)またはdist(Nitrososphaeraceae).

このadonis 関数は実際には多変量応答を対象としており、単変量応答の使用には注意が必要です。また、そのようなモデルで使用する非類似度 (または距離) のタイプを慎重に検討する必要があります。たとえば、上記の 2 つの方法は、異なる非類似度を使用するため、結果が異なります。adonis 単変量応答のような距離ベースの方法を使用することにあまり意味があるかどうかは、まったくわかりません。

于 2015-02-18T11:34:43.290 に答える