Справка по Матрице несхожести Брея-Кертиса: Веган - PullRequest
0 голосов
/ 06 февраля 2020

Я пытаюсь создать матрицу различий Брей-Кертиса с этими данными, чтобы исследовать изменения в сообществе с года отбора проб 2017 года на год отбора проб 2019 года на основе вылова на единицу усилия (CPUE). 2017 и 2019 будут рассматриваться как разные «сайты», поэтому я могу рассчитать композиционное различие между ними.

Меня больше всего интересует, как это соотносится с нативным fi sh и неродным fi sh в каждом этап жизни (взрослый и несовершеннолетний). И, честно говоря, я понятия не имею, с чего начать. Любая помощь очень ценится. Вот данные

         Species Year Age_Class       CPUE
1    Native Fish 2017  Juvenile 0.01538462
2    Native Fish 2017     Adult 0.01538462
3    Native Fish 2019  Juvenile 1.16492147
4    Native Fish 2019     Adult 0.01832461
5 Nonnative Fish 2017  Juvenile 0.63846154
6 Nonnative Fish 2017     Adult 0.54102564
7 Nonnative Fish 2019  Juvenile 0.47905759
8 Nonnative Fish 2019     Adult 0.60209424

Данные в формате dput ()

structure(list(Species = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 
                                             2L, 2L), .Label = c("Native Fish", "Nonnative Fish"), class = "factor"), 
                      Year = c(2017L, 2017L, 2019L, 2019L, 2017L, 2017L, 2019L, 
                                2019L), Age_Class = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 2L, 
                                                                1L), .Label = c("Adult", "Juvenile"), class = "factor"), 
                       CPUE = c(0.015384615, 0.015384615, 1.164921466, 0.018324607, 
                               0.638461538, 0.541025641, 0.479057592, 0.602094241)), class = "data.frame", row.names = c(NA, 
                                                                                                                          -8L))

1 Ответ

0 голосов
/ 06 февраля 2020

Я не уверен, что это именно то, что вам нужно, но здесь я изменил ваши данные, чтобы каждая комбинация species и age_class рассматривалась как ваши переменные "вида", а годы - как "сайты" , Таким образом, вы получаете только одно возвращенное значение расстояния; а именно, различие между 2017 и 2019 годами:

library(vegan)
library(reshape2)
df <- structure(list(Species = structure(c(1L, 1L, 1L, 1L, 2L, 2L, 
  2L, 2L), .Label = c("Native Fish", "Nonnative Fish"), class = "factor"), 
  Year = c(2017L, 2017L, 2019L, 2019L, 2017L, 2017L, 2019L, 
  2019L), Age_Class = structure(c(2L, 1L, 2L, 1L, 2L, 1L, 2L, 
  1L), .Label = c("Adult", "Juvenile"), class = "factor"), 
  CPUE = c(0.015384615, 0.015384615, 1.164921466, 0.018324607, 
  0.638461538, 0.541025641, 0.479057592, 0.602094241)), 
  class = "data.frame", row.names = c(NA, 
                                                                                                                          -8L))
df$code <- paste(gsub(pattern = " ", replacement = "_", x = df$Species), 
  df$Age_Class, sep = ".")
df2 <- dcast(data = df, formula = Year ~ code, fun.aggregate = sum, 
  value.var = "CPUE")
df2
#   Year Native_Fish.Adult Native_Fish.Juvenile Nonnative_Fish.Adult Nonnative_Fish.Juvenile
# 1 2017        0.01538462           0.01538462            0.5410256               0.6384615
# 2 2019        0.01832461           1.16492147            0.6020942               0.4790576
dim(df2)

D <- vegdist(x = df2, method = "bray")
D
#             1
# 2 0.000834997
...