1

私は新しい R ユーザーなので、無知であることをあらかじめお詫びします。私は、ストリーム大型無脊椎動物データのコミュニティ マトリックスを持っています (行見出しとしてのプロットと列見出しとしての種)。プロットごとに 500 人にデータを絞り込み、これを 1000 回実行してから、ストリームの健全性の指標 (% EPT など) を計算します。この時点で、データを 1000 回 (または 10 回) 希薄化するループを構築することに成功していません。私のコミュニティマトリックスには100種以上があるため、単純化されたデータセット(6種、12プロット)を使用して適切なコードを見つけています。適切なコードを開発するためのテンプレートとして、この Web サイト (http://ichthyology.usm.edu/courses/multivariate/diversity.R) を使用しています。このコードについてご協力いただきありがとうございます。

6種、12プロットの私のマトリックス

comm
    X Attenella.margarita Baetidae Baetis.sp. Baetis.tricaudatus Caenis.sp. Diphetor.hageni
1   1                   0        0          0                  0          0              36
2   2                   0        0          0               1009          0             682
3   3                  51       51          0                609          0             406
4   4                   0        0         40                  0          0               0
5   5                   0        0         68                  0         68             203
 6   6                   0        0          0               1244          0               0
 7   7                   0        0       2090                  0          0               0
 8   8                   0        0         11                  0          0               0
 9   9                   0        0          0               4621          0               0
 10 10                   0        0          0               1515          0               0
 11 11                   0        0          0                 33          0               0
 12 12                   0        0          0                116          0               0

ビーガン パッケージを使用してこのデータ セットを 1 回実行できrarefyますが、これを繰り返し実行したいと考えています。

rrarefy(comm, sample=5)
      X Attenella.margarita Baetidae Baetis.sp. Baetis.tricaudatus Caenis.sp. Diphetor.hageni
 [1,] 0                   0        0          0                  0          0               5
 [2,] 0                   0        0          0                  4          0               1
 [3,] 0                   2        0          0                  2          0               1
 [4,] 0                   0        0          5                  0          0               0
 [5,] 0                   0        0          1                  0          1               3
 [6,] 0                   0        0          0                  5          0               0
 [7,] 0                   0        0          5                  0          0               0
 [8,] 3                   0        0          2                  0          0               0
 [9,] 0                   0        0          0                  5          0               0
 [10,] 0                   0        0          0                  5          0               0
 [11,] 0                   0        0          0                  5          0               0
 [12,] 0                   0        0          0                  5          0               0

しかし、これをループとして10回実行しようとするとうまくいきません

> ComLoop = 0
> for (i in 1:10) ComLoop[i] = rrarefy(comm, sample=5)
  Warning in ComLoop[i] = rrarefy(comm, sample = 5) :
4

3 に答える 3

1

そのようなものはあなたの問題を解決しますか?

res <- lapply(as.list(1:10), function(x) rrarefy(comm, sample=5)) 

確かにもっと洗練された解決策がありますが、希薄化が何をしているのかよくわかりません。あなたのリンクは私にとってはうまくいきませんでした。

于 2013-01-02T16:35:00.573 に答える
0

user1943324、私も希薄化し、%EPT などの無脊椎動物の指標を計算しようとしています。しかし、私は別のアプローチをとっており、r プログラミングの経験が限られているため、つまずきに遭遇しました。

希薄化されたマトリックスを何度も作成してから、各希薄化の実行で EPT 分類群の数を数え、平均と変動性を計算しようとしていると思います。

代わりに、既存の rarfy{vegan} コードを変更して、ユーザー定義の特性 (EPT かどうか、機能的な摂食グループ、または許容値など) を許可し、複数回の実行で平均化された既存の分類群の豊富さの総数に加えて、IF を使用できますか?それらの実行にわたって個々の特性状態の分類群の豊富さを平均化するためのコマンドよりも?

複数の出力行列を作成する必要はありません。

于 2013-05-22T23:03:23.977 に答える