R でベータ多様性を計算する:
Bray-Curtis, vegdist 関数
UB3/informatics/r/diversity_beta
このページの最終更新日: 2024/04/07広告
概要: β多様性とは
β多様性は、2 つのサンプルや地点間での生物多様性を示す指標である。2 つのサンプルがどれくらい似ているか (または似ていないか) が数値として与えられる。
他にも α多様性および γ多様性があるので、基礎的な内容については以下のサイト内検索から関連ページを参照のこと。
β多様性を表す指数としては、
R vegdist() 関数による β 多様性の計算
dune データセット
R によるα多様性の計算 と同じく、vegan という パッケージ と、このパッケージに含まれている dune という 組み込みデータセット を用いる (表は dune の一部)。20 行 30 列のデータである。
data(dune)
Achimill |
Agrostol |
Airaprae |
Alopgeni |
Anthodor |
Bellpere |
|
1 |
1 |
0 |
0 |
0 |
0 |
0 |
2 |
3 |
0 |
0 |
3 |
0 |
3 |
3 |
0 |
4 |
0 |
7 |
0 |
2 |
行は場所であるが、単に 1 - 20 の番号が割り振ってある。列の Achimill, Agrostol などは種名の略称で、
を実行すると、この略称を作った関数をみることができる。
計算
とすると、20 個のデータの総当たりで Bray index が表示される。
つまり、input は abundance のみを含むデータフレームである。
method はさまざまな方法が指定可能で、Documentation には "manhattan", "euclidean", "canberra", "bray", "kulczynski", "jaccard", "gower", "altGower", "morisita", "horn", "mountford", "raup" , "binomial", "chao", "cao" or "mahalanobis" が載っている。
データが負の値を含む場合、results may be meaningless because data have negative entries in method “horn” のようなエラーメッセージが表示される。この GitHub ページ によると、Gower, altGower, mahalanobis は負の値も扱えるようである。altGower では上記のエラーメッセージが表示されるが、これは vegdist のエラーのようだ。
結果の表示と保存
上の関数を実行した場合、結果が保存される dis.bc は
行と列の名前は、1 - 20 の site になり、つまり 1 と 2 の群集がどれくらい似ているか、1 と 3, 1 と 4 ... 19 と 20 という総当たりの比較がデータとして出てくるわけである。
ただし、これを書き出すにはちょっと工夫が必要。
普通に以下のように書き出しを実行すると、Error in as.data.frame.default (x[[i]], optional = TRUE) : cannot coerce class ‘"dist"’ to a data.frame というエラーになる。形を見てわかるとおり、確かにデータフレームとは少し違っている。
この dist というクラスはかなり扱いづらいので、csv などに書き出したいのなら、最初から as.matrix としておく (3)。
こうすると dis.bc2 は対角線に 0 がある対称行列となる。1 - 5 のみを示しておくが、20 x 20 である。これは write.csv などで書き出すことができる。
広告
References
- 多様性指数の算出:R備忘録. Link: Last access 2022/05/03.
- Vegan turotial. Link: Last access 2022/05/03.
- Rによるクラスター分析【ユークリッド距離】Link: Last access 2022/03/21.
コメント欄
サーバー移転のため、コメント欄は一時閉鎖中です。サイドバーから「管理人への質問」へどうぞ。