suppressMessages(library(tidyverse))
suppressMessages(library(vegan))
theme_set(theme_bw() + theme(legend.position = "bottom"))
load("17.02.2023.RData")
rm(PCOA, dis)
div <- div %>% 
    # filter(substrate != "debris") %>% 
    select(-Astigmata_total) %>% 
    mutate(
        coast = factor(coast, levels = c("pebbly", "sandy beach", "reeds")), 
        vegetation = case_when(vegetation == "no" ~ "0", TRUE ~ vegetation), 
        vegetation = factor(as.numeric(vegetation), ordered = TRUE)
)

Обилия и соотношения таксонов

my_col <- function(type, div = div){ 
    # type = "coast"
    div %>% 
        select(type = {{type}}, Collembola:Oribatida_total) %>% 
        pivot_longer(names_to = "taxa", values_to = "abu", -type) %>% 
        group_by(type, taxa) %>% 
        summarise(abu = sum(abu), .groups = "drop") %>% 
        ggplot(aes(x = type, y = abu, fill = taxa))
    }

Берег

Обилия

div %>% 
    my_col(type = "coast") +
    geom_col(position = "dodge") + 
    labs(x = "Coast", fill = "", y = "Abundance raw")

Соотношения обилий

div %>% 
    my_col(type = "coast") + 
    geom_col(position = "fill") + 
    labs(x = "Coast", fill = "", y = "Abundance relative")

Уклон

Обилия

div %>% 
    my_col(type = "skew") +
    geom_col(position = "dodge") + 
    labs(x = "skew", fill = "", y = "Abundance raw")

Соотношения обилий

div %>% 
    my_col(type = "skew")  + 
    geom_col(position = "fill") + 
    labs(x = "skew", fill = "", y = "Abundance relative")

Почва

Обилия

div %>% 
    my_col(type = "soil") +
    geom_col(position = "dodge") + 
    labs(x = "soil", fill = "", y = "Abundance raw")

Соотношения обилий

div %>% 
    my_col(type = "soil") + 
    geom_col(position = "fill") + 
    labs(x = "soil", fill = "", y = "Abundance relative")

Проективное покрытие травостоя

Обилия

div %>% 
    my_col(type = "vegetation") + 
    geom_col(position = "dodge") + 
    labs(x = "Vegetation cover, %", y = "Abundance raw", fill = "")

Соотношения обилий

div %>% 
    my_col(type = "vegetation") + 
    geom_col(position = "fill") + 
    labs(x = "Vegetation cover, %", y = "Abundance relative", fill = "")

Доминантные виды растений

Обилия

div %>% 
    my_col(type = "plants.d") +
    geom_col(position = "dodge") + 
    labs(x = "Dominant plants", y = "Abundance raw", fill = "") + 
    theme(axis.text.x = element_text(angle = 30, hjust = 0.9))

Соотношения обилий

div %>% 
    my_col(type = "plants.d") + 
    geom_col(position = "fill") + 
    labs(x = "Dominant plants", y = "Abundance relative")+ 
    theme(axis.text.x = element_text(angle = 30, hjust = 0.9))

Разнообразие

Берег

div %>% 
    select(coast:mst_iH) %>% 
    pivot_longer(names_to = "v1", values_to = "vr", -c(1:7)) %>% 
    filter(!is.na(vr)) %>% 
    separate(v1, into = c("taxa", "diversity"), sep = "_", extra = "merge") %>% 
    mutate(diversity2 = case_when(
        diversity == "obs_m"  ~"4. Abundance", 
        diversity == "obs_qD" ~ "1. Observed N of sp.",
        diversity == "iH"     ~ "3. Shannon index", 
        TRUE ~ "2. Rarefied N of sp."
        ), taxa = case_when(taxa == "orb" ~ "Oribatida", TRUE ~ "Mesostigmata")) %>% 
    ggplot(aes(x = coast, y = vr, fill = taxa)) + 
    geom_boxplot() + 
    facet_wrap(~diversity2, scales = "free") +
    labs(subtitle = "Oribatida rarefied to 20, Mesostigmata to 10 individuals", 
         y = NULL, x = NULL, fill = "")

Уклон

div %>% 
    select(coast:mst_iH) %>% 
    pivot_longer(names_to = "v1", values_to = "vr", -c(1:7)) %>% 
    filter(!is.na(vr)) %>% 
    separate(v1, into = c("taxa", "diversity"), sep = "_", extra = "merge") %>% 
    mutate(diversity2 = case_when(
        diversity == "obs_m"  ~"4. Abundance", 
        diversity == "obs_qD" ~ "1. Observed N of sp.",
        diversity == "iH"     ~ "3. Shannon index", 
        TRUE ~ "2. Rarefied N of sp."
        ), taxa = case_when(taxa == "orb" ~ "Oribatida", TRUE ~ "Mesostigmata")) %>% 
    ggplot(aes(x = skew, y = vr, fill = taxa)) + 
    geom_boxplot() + 
    facet_wrap(~diversity2, scales = "free") +
    labs(subtitle = "Oribatida rarefied to 20, Mesostigmata to 10 individuals", 
         y = NULL, x = NULL, fill = "")

Почва

div %>% 
    select(coast:mst_iH) %>% 
    pivot_longer(names_to = "v1", values_to = "vr", -c(1:7)) %>% 
    filter(!is.na(vr)) %>% 
    separate(v1, into = c("taxa", "diversity"), sep = "_", extra = "merge") %>% 
    mutate(diversity2 = case_when(
        diversity == "obs_m"  ~"4. Abundance", 
        diversity == "obs_qD" ~ "1. Observed N of sp.",
        diversity == "iH"     ~ "3. Shannon index", 
        TRUE ~ "2. Rarefied N of sp."
        ), taxa = case_when(taxa == "orb" ~ "Oribatida", TRUE ~ "Mesostigmata")) %>% 
    ggplot(aes(x = soil, y = vr, fill = taxa)) + 
    geom_boxplot() + 
    facet_wrap(~diversity2, scales = "free") +
    labs(subtitle = "Oribatida rarefied to 20, Mesostigmata to 10 individuals", 
         y = NULL, x = NULL, fill = "")

Проективное покрытие растительности

div %>% 
    select(coast:mst_iH) %>% 
    pivot_longer(names_to = "v1", values_to = "vr", -c(1:7)) %>% 
    filter(!is.na(vr)) %>% 
    separate(v1, into = c("taxa", "diversity"), sep = "_", extra = "merge") %>% 
    mutate(diversity2 = case_when(
        diversity == "obs_m"  ~"4. Abundance", 
        diversity == "obs_qD" ~ "1. Observed N of sp.",
        diversity == "iH"     ~ "3. Shannon index", 
        TRUE ~ "2. Rarefied N of sp."
        ), taxa = case_when(taxa == "orb" ~ "Oribatida", TRUE ~ "Mesostigmata")) %>% 
    ggplot(aes(x = vegetation, y = vr, fill = taxa)) + 
    geom_boxplot() + 
    facet_wrap(~diversity2, scales = "free") +
    labs(subtitle = "Oribatida rarefied to 20, Mesostigmata to 10 individuals", 
         y = NULL, x = NULL, fill = "")

Доминантные виды растений

div %>% 
    select(coast:mst_iH) %>% 
    pivot_longer(names_to = "v1", values_to = "vr", -c(1:7)) %>% 
    filter(!is.na(vr)) %>% 
    separate(v1, into = c("taxa", "diversity"), sep = "_", extra = "merge") %>% 
    mutate(diversity2 = case_when(
        diversity == "obs_m"  ~"4. Abundance", 
        diversity == "obs_qD" ~ "1. Observed N of sp.",
        diversity == "iH"     ~ "3. Shannon index", 
        TRUE ~ "2. Rarefied N of sp."
        ), taxa = case_when(taxa == "orb" ~ "Oribatida", TRUE ~ "Mesostigmata")) %>% 
    ggplot(aes(x = plants.d, y = vr, fill = taxa)) + 
    geom_boxplot() + 
    facet_grid(rows = vars(diversity2),scales = "free") + 
    labs(subtitle = "Oribatida rarefied to 20, Mesostigmata to 10 individuals", 
         y = NULL, x = "Dominant plant species", fill = "") + 
    theme(axis.text.x = element_text(angle = 30, hjust = 0.9))

Струкруа населения: ординация

# dissimilarity -----------------------------------------------------------
dis2 <- list()
dis2$or.bin <- or.w %>% 
    select(!starts_with("Sw")) %>% 
    column_to_rownames("sp") %>% 
    select_if(function(a){sum(a)>0}) %>% 
    t %>% 
    as.data.frame() %>% 
    vegan::vegdist(method = "jaccard", binary = TRUE)
dis2$or.num <- or.w %>% 
    select(!starts_with("Sw")) %>% 
    column_to_rownames("sp") %>% 
    select_if(function(a){sum(a)>0}) %>% 
    t %>% 
    as.data.frame() %>% 
    vegan::vegdist(method = "bray", binary = FALSE)
dis2$ms.bin <- ms.w %>% 
    select(!starts_with("Sw")) %>% 
    column_to_rownames("sp") %>% 
    select_if(function(a){sum(a)>0}) %>% 
    t %>% 
    as.data.frame() %>% 
    vegan::vegdist(method = "jaccard", binary = TRUE)
dis2$ms.num <- ms.w %>% 
    select(!starts_with("Sw")) %>% 
    column_to_rownames("sp") %>% 
    select_if(function(a){sum(a)>0}) %>% 
    t %>% 
    as.data.frame() %>% 
    vegan::vegdist(method = "bray", binary = FALSE)

# Multidimensional --------------------------------------------------------
PCOA2 <- dis2 %>% 
    lapply(function(a){
        p <- ape::pcoa(a)
        e <- p$values$Eigenvalues
        if(min(e) < 0){
            e <- e + abs(min(e))
            e <- round(e/sum(e)*100, 1)
        } else { 
            e <- round(e/sum(e)*100, 1)
        }
        p <- tibble::tibble(id = rownames(p$vectors), 
                            axis1 = p$vectors[,1], 
                            axis2 = p$vectors[,2]) 
        list(eig = e, pc = p)
    }) %>% 
    purrr::transpose()

M2 <- PCOA2 %>% 
    pluck("pc") %>% 
    map_df(rbind, .id = "D") %>% 
    separate(D, into = c("taxa", "type")) %>% 
    left_join(div, by = "id") %>% 
    select(taxa:plants.d) %>% 
    mutate(
        axis1 = case_when(taxa == "ms" & type == "bin" ~ axis1*-1, TRUE ~ axis1),
        axis1 = case_when(taxa == "or" & type == "bin" ~ axis1*-1, TRUE ~ axis1),
        taxa = case_when(taxa == "or" ~ "Oribatida", TRUE ~ "Mesostigmata"), 
        type = case_when(type == "bin" ~ "Binary data", 
                         TRUE ~ "Numeric data")) %>% 
    filter(!is.na(coast))

Тополгия проб в многомерном пространстве

Интерактивная

plotly::ggplotly(
    PCOA2 %>% 
    pluck("eig") %>% 
    lapply(function(a)data.frame(
        ax1 = paste0(a[1], " %"), ax2 = paste0(a[2], " %"))) %>% 
    map_df(rbind, .id = "D") %>% 
    separate(D, into = c("taxa", "type")) %>% 
    mutate(
        taxa = case_when(taxa == "or" ~ "Oribatida", TRUE ~ "Mesostigmata"), 
        type = case_when(type == "bin" ~ "Binary data", 
                         TRUE ~ "Numeric data")) %>% 
        
    ggplot() + 
        geom_text(aes(x = 0.3, y = -0.4, label = ax1)) +
        geom_text(aes(x = -0.55, y = 0.3, label = ax2), angle = 90) +
        geom_point(aes(x = axis1, y = axis2, color = id), data = M2) + 
        facet_grid(rows = vars(type), cols = vars(taxa)) + 
        labs(x = NULL, y = NULL, title = "General topology") + 
        theme(legend.position = "none")
)

С %% объясненной дисперсии по осям

PCOA2 %>% 
    pluck("eig") %>% 
    lapply(function(a)data.frame(
        ax1 = paste0(a[1], " %"), ax2 = paste0(a[2], " %"))) %>% 
    map_df(rbind, .id = "D") %>% 
    separate(D, into = c("taxa", "type")) %>% 
    mutate(
        taxa = case_when(taxa == "or" ~ "Oribatida", TRUE ~ "Mesostigmata"), 
        type = case_when(type == "bin" ~ "Binary data", 
                         TRUE ~ "Numeric data")) %>% 
        
    ggplot() + 
        geom_text(aes(x = 0.3, y = -0.4, label = ax1)) +
        geom_text(aes(x = -0.55, y = 0.3, label = ax2), angle = 90) +
        geom_point(aes(x = axis1, y = axis2, color = id), data = M2) + 
        facet_grid(rows = vars(type), cols = vars(taxa)) + 
        labs(x = NULL, y = NULL, title = "General topology") + 
        theme(legend.position = "none")

Берег

ggplot(M2, aes(x = axis1, y = axis2, color = coast)) + 
    geom_point() + 
    stat_ellipse() +
    facet_grid(rows = vars(type), cols = vars(taxa)) + 
    labs(x = NULL, y = NULL) 

Уклон

ggplot(M2, aes(x = axis1, y = axis2, color = skew)) + 
    geom_point() + 
    stat_ellipse() +
    facet_grid(rows = vars(type), cols = vars(taxa)) + 
    labs(x = NULL, y = NULL) 

Почва

ggplot(M2, aes(x = axis1, y = axis2, color = soil)) + 
    geom_point() + 
    stat_ellipse() +
    facet_grid(rows = vars(type), cols = vars(taxa)) + 
    labs(x = NULL, y = NULL) 

Доминантные виды растений

M2 %>% 
    ggplot(aes(x = axis1, y = axis2, color = plants.d)) + 
    geom_point() + 
    stat_ellipse() +
    facet_grid(rows = vars(type), cols = vars(taxa)) + 
    labs(x = NULL, y = NULL, color = "Dominant plant species")

Струкруа населения: PERMANOVA

  • soil - почва
  • coast - берег
  • vegetation - ПП растительности, %
  • plants.d - доминантные виды растений

Oribatida, состав

labs %>% 
    filter(id %in% attr(dis2$or.bin, "Labels")) %>% 
    # mutate(vegetation = as.numeric(vegetation)) %>%
    vegan::adonis2(
        dis2$or.bin ~ soil + coast + vegetation + plants.d, 
        data = ., permutations = 9999)
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 9999
## 
## vegan::adonis2(formula = dis2$or.bin ~ soil + coast + vegetation + plants.d, data = ., permutations = 9999)
##            Df SumOfSqs      R2      F Pr(>F)    
## soil        1   0.4896 0.01978 1.8239 0.0529 .  
## coast       1   1.8373 0.07422 6.8445 0.0001 ***
## vegetation  4   4.0395 0.16319 3.7621 0.0001 ***
## plants.d    7   4.6975 0.18977 2.4999 0.0001 ***
## Residual   51  13.6902 0.55305                  
## Total      64  24.7541 1.00000                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1
# vegan::adonis2(dis2$or.bin ~ soil + coast + plants.d + vegetation , 
#                data = filter(labs, id %in% attr(dis2$or.bin, "Labels")),
#                permutations = 9)
# vegan::adonis2(dis2$or.bin ~ soil + coast + vegetation + plants.d, 
#                data = filter(labs, id %in% attr(dis2$or.bin, "Labels")),
#                permutations = 9)
# vegan::adonis2(dis2$or.bin ~ vegetation + plants.d + soil + coast, 
#                data = filter(labs, id %in% attr(dis2$or.bin, "Labels")),
#                permutations = 9)
# vegan::adonis2(dis2$or.bin ~ plants.d + vegetation + soil + coast, 
#                data = filter(labs, id %in% attr(dis2$or.bin, "Labels")),
#                permutations = 9)

Видовой соостав орибатид в пробах на 35.3 % определяется видовым составом и проективным покрытием растений (0.1632 + 0.1898 в таблице). От почвы и берега он зависит в лучшем случае на 9.4 % (а может оказаться, что и меньше)

Oribatida, структура

vegan::adonis2(dis2$or.num ~ coast + soil + vegetation + plants.d, 
               data = filter(labs, id %in% attr(dis2$or.num, "Labels")), 
               permutations = 9999)
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 9999
## 
## vegan::adonis2(formula = dis2$or.num ~ coast + soil + vegetation + plants.d, data = filter(labs, id %in% attr(dis2$or.num, "Labels")), permutations = 9999)
##            Df SumOfSqs      R2      F Pr(>F)    
## coast       2   1.9425 0.07091 2.8812  1e-04 ***
## vegetation  4   3.4056 0.12433 2.5257  1e-04 ***
## plants.d    7   4.8520 0.17713 2.0562  1e-04 ***
## Residual   51  17.1918 0.62762                  
## Total      64  27.3919 1.00000                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Mesostigmata, состав

vegan::adonis2(dis2$ms.bin ~ coast + soil + vegetation + plants.d, 
               data = filter(labs, id %in% attr(dis2$ms.bin, "Labels")), 
               permutations = 9999)
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 9999
## 
## vegan::adonis2(formula = dis2$ms.bin ~ coast + soil + vegetation + plants.d, data = filter(labs, id %in% attr(dis2$ms.bin, "Labels")), permutations = 9999)
##            Df SumOfSqs      R2      F Pr(>F)    
## coast       2    2.744 0.08657 4.5178  1e-04 ***
## vegetation  4    5.049 0.15929 4.1565  1e-04 ***
## plants.d    7    6.291 0.19847 2.9594  1e-04 ***
## Residual   58   17.614 0.55568                  
## Total      71   31.699 1.00000                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Mesostigmata, структура

vegan::adonis2(dis2$ms.num ~ coast + soil + vegetation + plants.d, 
               data = filter(labs, id %in% attr(dis2$ms.num, "Labels")), 
               permutations = 9999)
## Permutation test for adonis under reduced model
## Terms added sequentially (first to last)
## Permutation: free
## Number of permutations: 9999
## 
## vegan::adonis2(formula = dis2$ms.num ~ coast + soil + vegetation + plants.d, data = filter(labs, id %in% attr(dis2$ms.num, "Labels")), permutations = 9999)
##            Df SumOfSqs      R2      F Pr(>F)    
## coast       2    2.323 0.07181 3.4933  1e-04 ***
## vegetation  4    4.676 0.14454 3.5158  1e-04 ***
## plants.d    7    6.066 0.18752 2.6064  1e-04 ***
## Residual   58   19.283 0.59613                  
## Total      71   32.348 1.00000                  
## ---
## Signif. codes:  0 '***' 0.001 '**' 0.01 '*' 0.05 '.' 0.1 ' ' 1

Задействованные данные

Обилие общее

formattable::formattable(div[,c(1,17:20)])
id Collembola Prostigmata Mesostigmata_total Oribatida_total
PbAe1 4 5 0 0
PbAe2 24 14 0 0
PbAe3 2 3 1 0
PbAe4 1090 15 0 0
PbAe5 475 5 1 1
PbDe1 15 0 2 0
PbDe2 9 1 2 0
PbDe3 49 1 4 0
PbDe4 24 24 28 5
PbDe5 510 5 35 2
PbPo1 13 4 4 2
PbPo2 3 3 2 0
PbPo3 534 6 47 4
PbPo4 740 21 42 11
PbPo5 430 11 10 0
PbTu1 58 170 12 14
PbTu2 91 71 21 18
PbTu3 135 220 46 23
PbTu4 162 260 7 1
PbTu5 337 93 19 19
PbTl1 82 62 1 1
PbTl2 94 49 34 3
PbTl3 61 78 11 2
PbTl4 96 355 3 3
PbTl5 512 97 13 48
SdJj1 81 92 21 122
SdJj2 137 219 21 61
SdJj3 92 88 6 2
SdJj4 3410 25 5 59
SdJj5 1090 11 5 39
SdEq1 325 224 20 39
SdEq2 137 168 6 44
SdEq3 120 822 11 4
SdEq4 1310 71 6 28
SdEq5 1480 51 11 72
SdTu1 1110 83 37 95
SdTu2 265 102 33 8
SdTu3 189 111 26 24
SdTu4 62 39 8 4
SdTu5 61 21 13 2
SdEc1 98 240 13 3
SdEc2 96 336 8 179
SdEc3 129 768 83 188
SdEc4 158 137 17 23
SdEc5 31 709 72 144
SdTa1 77 285 20 38
SdTa2 305 458 14 66
SdTa3 93 891 100 169
SdTa4 194 74 10 1
SdTa5 89 190 18 2
SdJm1 56 452 4 94
SdJm2 86 141 7 23
SdJm3 11 309 13 59
SdJm4 478 102 13 79
SdJm5 332 119 5 20
SdFn1 49 25 31 111
SdFn2 318 123 58 104
SdFn3 124 197 19 49
SdFn4 61 5 11 4
SdFn5 101 22 8 10
RsFd1 115 138 23 80
RsFd2 74 98 23 34
RsFd3 102 86 11 54
RsFd4 278 154 20 89
RsFd5 145 270 46 151
SdCJ1 0 42 2 2
SdCJ2 0 5 1 3
SdCJ3 9 33 1 55
SdCJ4 1 21 2 1
SdCJ5 0 14 1 1
SdCS1 2 37 2 33
SdCS2 13 57 2 26
SdCS3 5 75 2 37
SdCS4 2 73 7 28
SdCS5 5 97 2 29
Sw1 490 16 47 60
Sw2 10 83 1 71
Sw3 15 105 1 51
Sw4 9 43 3 33
Sw5 192 35 31 167

Разнообразие Oribatida

div %>% 
    select(id, 
           `Abundance` = orb_obs_m, 
           `Number of species` = orb_obs_qD, 
           `Rarefied number of species` = orb_d20_qD, 
           `Shannon index` = orb_iH) %>% 
    mutate_at(c("Abundance", "Number of species"), function(a){a[is.na(a)] <- 0; a}) %>% 
    formattable::formattable()
id Abundance Number of species Rarefied number of species Shannon index
PbAe1 0 0 NA NA
PbAe2 0 0 NA NA
PbAe3 0 0 NA NA
PbAe4 0 0 NA NA
PbAe5 1 1 1.000000 0.0000000
PbDe1 0 0 NA NA
PbDe2 0 0 NA NA
PbDe3 0 0 NA NA
PbDe4 5 4 7.243466 1.3321790
PbDe5 1 1 1.000000 0.0000000
PbPo1 1 1 1.000000 0.0000000
PbPo2 0 0 NA NA
PbPo3 4 4 8.318528 1.3862944
PbPo4 11 2 2.000000 0.4741393
PbPo5 0 0 NA NA
PbTu1 14 3 3.535087 0.5091373
PbTu2 18 3 3.000000 0.6546696
PbTu3 22 3 2.909091 0.8192300
PbTu4 1 1 1.000000 0.0000000
PbTu5 18 5 5.188366 1.3784974
PbTl1 1 1 1.000000 0.0000000
PbTl2 3 2 2.333331 0.6365142
PbTl3 2 2 2.500000 0.6931472
PbTl4 2 1 1.000000 0.0000000
PbTl5 39 8 5.458073 1.3967087
SdJj1 122 2 1.999272 0.5917104
SdJj2 61 3 2.327786 0.6977461
SdJj3 2 1 1.000000 0.0000000
SdJj4 59 2 1.338983 0.0859155
SdJj5 39 2 1.999999 0.6528258
SdEq1 35 3 2.568345 0.5824257
SdEq2 42 3 2.731268 0.7270014
SdEq3 4 3 4.484966 1.0397208
SdEq4 28 3 2.697192 0.4904499
SdEq5 69 3 2.883265 0.8861363
SdTu1 95 2 1.999998 0.6837549
SdTu2 8 2 2.000000 0.6615632
SdTu3 24 3 2.831357 0.5442837
SdTu4 4 2 2.000000 0.6931472
SdTu5 2 2 2.500000 0.6931472
SdEc1 3 3 4.997970 1.0986123
SdEc2 175 7 3.314495 0.8567530
SdEc3 185 4 2.987057 0.8413431
SdEc4 22 5 4.818182 1.2200467
SdEc5 46 8 6.286534 1.7165982
SdTa1 38 2 1.958545 0.3364958
SdTa2 65 2 1.982179 0.4293230
SdTa3 167 5 2.845166 0.6565421
SdTa4 1 1 1.000000 0.0000000
SdTa5 2 1 1.000000 0.0000000
SdJm1 91 3 2.763849 0.6081338
SdJm2 21 2 2.000000 0.5982696
SdJm3 59 4 3.130517 0.7165508
SdJm4 72 2 1.999909 0.6264500
SdJm5 16 2 2.000000 0.4825776
SdFn1 111 7 5.184630 1.4255178
SdFn2 104 8 5.702130 1.7169811
SdFn3 49 8 5.808943 1.5315573
SdFn4 4 2 2.000000 0.5623351
SdFn5 10 3 3.389506 0.8018186
RsFd1 76 13 8.607866 2.1646870
RsFd2 31 10 8.509630 2.0920540
RsFd3 50 10 7.423642 1.8861403
RsFd4 85 12 7.363306 1.7505727
RsFd5 144 11 5.562843 1.4598844
SdCJ1 2 1 1.000000 0.0000000
SdCJ2 3 2 2.333331 0.6365142
SdCJ3 6 2 2.000000 0.4505612
SdCJ4 0 0 NA NA
SdCJ5 1 1 1.000000 0.0000000
SdCS1 28 9 7.211640 1.6236078
SdCS2 26 4 3.946154 1.1330848
SdCS3 36 5 4.032558 1.0536914
SdCS4 26 4 3.722074 0.8397961
SdCS5 28 5 4.623043 1.1967007
Sw1 32 11 8.197579 1.8803036
Sw2 40 8 6.038462 1.3023528
Sw3 26 11 9.698997 2.1182723
Sw4 30 12 9.118774 1.8923784
Sw5 165 9 4.855290 1.3484927

Разнообразие Mesostigmata

div %>% 
    select(id, 
           `Abundance` = mst_obs_m, 
           `Number of species` = mst_obs_qD, 
           `Rarefied number of species` = mst_d10_qD, 
           `Shannon index` = mst_iH) %>% 
    mutate_at(c("Abundance", "Number of species"), function(a){a[is.na(a)] <- 0; a}) %>% 
    formattable::formattable()
id Abundance Number of species Rarefied number of species Shannon index
PbAe1 0 0 NA NA
PbAe2 0 0 NA NA
PbAe3 1 1 1.000000 0.0000000
PbAe4 0 0 NA NA
PbAe5 1 1 1.000000 0.0000000
PbDe1 2 2 2.499924 0.6931472
PbDe2 2 2 2.499924 0.6931472
PbDe3 4 1 1.000000 0.0000000
PbDe4 28 4 3.396507 1.1163671
PbDe5 35 3 1.781513 0.3470668
PbPo1 4 3 4.233032 1.0397208
PbPo2 2 1 1.000000 0.0000000
PbPo3 47 8 4.951391 1.7421588
PbPo4 42 3 1.662021 0.3027839
PbPo5 10 3 NA 0.6390319
PbTu1 12 5 4.651515 1.4241299
PbTu2 21 7 5.180264 1.6569375
PbTu3 46 8 3.603983 1.2018225
PbTu4 7 5 6.393714 1.4750763
PbTu5 19 9 5.860562 1.8224567
PbTl1 1 1 1.000000 0.0000000
PbTl2 34 8 4.910358 1.6993617
PbTl3 11 6 5.727273 1.6726254
PbTl4 3 2 2.330729 0.6365142
PbTl5 13 4 3.538462 1.0905995
SdJj1 21 7 5.248563 1.6993255
SdJj2 21 4 3.612413 1.2372274
SdJj3 6 3 3.616410 0.8675632
SdJj4 5 4 5.934408 1.3321790
SdJj5 5 5 8.560568 1.6094379
SdEq1 20 6 4.772863 1.5536520
SdEq2 6 4 4.616410 1.3296613
SdEq3 11 5 4.636364 1.1595888
SdEq4 6 5 7.113244 1.5607104
SdEq5 11 2 1.909091 0.3046361
SdTu1 37 8 4.739365 1.6057964
SdTu2 33 6 3.843327 1.2715071
SdTu3 26 6 3.930035 1.3446254
SdTu4 8 4 4.345679 1.2554823
SdTu5 13 5 4.500000 1.4127446
SdEc1 13 4 3.765734 1.2658568
SdEc2 8 4 4.615234 1.0735428
SdEc3 83 12 5.340752 1.9535878
SdEc4 17 5 3.970588 1.2033320
SdEc5 72 11 5.117188 1.8734056
SdTa1 20 7 5.147059 1.6865700
SdTa2 14 9 7.362637 2.1065773
SdTa3 100 7 3.895717 1.4313404
SdTa4 10 5 NA 1.4184837
SdTa5 18 5 3.745098 1.0797346
SdJm1 4 4 7.150069 1.3862944
SdJm2 7 4 4.952103 1.1537419
SdJm3 13 9 7.534965 2.0981474
SdJm4 13 1 1.000000 0.0000000
SdJm5 5 3 3.694650 0.9502705
SdFn1 31 3 2.701965 0.9347570
SdFn2 58 12 4.801076 1.7007024
SdFn3 19 5 3.631579 1.0435479
SdFn4 11 4 3.909091 1.2945452
SdFn5 8 7 8.399277 1.9061547
RsFd1 23 7 4.392573 1.4288697
RsFd2 23 6 3.700883 1.1792337
RsFd3 11 5 4.727273 1.2945452
RsFd4 20 3 2.526316 0.6390319
RsFd5 46 5 2.803375 0.9507672
SdCJ1 2 2 2.499924 0.6931472
SdCJ2 1 1 1.000000 0.0000000
SdCJ3 1 1 1.000000 0.0000000
SdCJ4 2 1 1.000000 0.0000000
SdCJ5 1 1 1.000000 0.0000000
SdCS1 2 2 2.499924 0.6931472
SdCS2 2 2 2.499924 0.6931472
SdCS3 2 1 1.000000 0.0000000
SdCS4 7 1 1.000000 0.0000000
SdCS5 2 1 1.000000 0.0000000
Sw1 47 6 4.004445 1.4367296
Sw2 1 1 1.000000 0.0000000
Sw3 1 1 1.000000 0.0000000
Sw4 3 3 4.882945 1.0986123
Sw5 31 7 4.135700 1.3532343

Параметры среды

div %>% 
    select(id, coast, skew, soil, substrate, 
           `Проективное покрытие, %` = vegetation, 
           `Доминантные виды растений` = plants.d,) %>% 
    formattable::formattable()
id coast skew soil substrate Проективное покрытие, % Доминантные виды растений
PbAe1 pebbly steep sand turf 10 Aeluropus
PbAe2 pebbly steep sand turf 10 Aeluropus
PbAe3 pebbly steep sand turf 10 Aeluropus
PbAe4 pebbly steep sand turf 10 Aeluropus
PbAe5 pebbly steep sand turf 10 Aeluropus
PbDe1 pebbly steep sand turf 10 Deschampsia
PbDe2 pebbly steep sand turf 10 Deschampsia
PbDe3 pebbly steep sand turf 10 Deschampsia
PbDe4 pebbly steep sand turf 10 Deschampsia
PbDe5 pebbly steep sand turf 10 Deschampsia
PbPo1 pebbly steep sand turf 10 Poa
PbPo2 pebbly steep sand turf 10 Poa
PbPo3 pebbly steep sand turf 10 Poa
PbPo4 pebbly steep sand turf 10 Poa
PbPo5 pebbly steep sand turf 10 Poa
PbTu1 pebbly steep sand turf 10 Typha
PbTu2 pebbly steep sand turf 10 Typha
PbTu3 pebbly steep sand turf 10 Typha
PbTu4 pebbly steep sand turf 10 Typha
PbTu5 pebbly steep sand turf 10 Typha
PbTl1 pebbly steep sand turf 10 Typha
PbTl2 pebbly steep sand turf 10 Typha
PbTl3 pebbly steep sand turf 10 Typha
PbTl4 pebbly steep sand turf 10 Typha
PbTl5 pebbly steep sand turf 10 Typha
SdJj1 sandy beach gentle sand turf 70 Juncus
SdJj2 sandy beach gentle sand turf 70 Juncus
SdJj3 sandy beach gentle sand turf 70 Juncus
SdJj4 sandy beach gentle sand turf 70 Juncus
SdJj5 sandy beach gentle sand turf 70 Juncus
SdEq1 sandy beach gentle sand turf 70 Equisetum
SdEq2 sandy beach gentle sand turf 70 Equisetum
SdEq3 sandy beach gentle sand turf 70 Equisetum
SdEq4 sandy beach gentle sand turf 70 Equisetum
SdEq5 sandy beach gentle sand turf 70 Equisetum
SdTu1 sandy beach gentle sand turf 40 Typha
SdTu2 sandy beach gentle sand turf 40 Typha
SdTu3 sandy beach gentle sand turf 40 Typha
SdTu4 sandy beach gentle sand turf 40 Typha
SdTu5 sandy beach gentle sand turf 40 Typha
SdEc1 sandy beach gentle sand turf 90 Elaeagnus
SdEc2 sandy beach gentle sand turf 90 Elaeagnus
SdEc3 sandy beach gentle sand turf 90 Elaeagnus
SdEc4 sandy beach gentle sand turf 90 Elaeagnus
SdEc5 sandy beach gentle sand turf 90 Elaeagnus
SdTa1 sandy beach gentle sand turf 90 Typha
SdTa2 sandy beach gentle sand turf 90 Typha
SdTa3 sandy beach gentle sand turf 90 Typha
SdTa4 sandy beach gentle sand turf 90 Typha
SdTa5 sandy beach gentle sand turf 90 Typha
SdJm1 sandy beach gentle sand turf 40 Juncus
SdJm2 sandy beach gentle sand turf 40 Juncus
SdJm3 sandy beach gentle sand turf 40 Juncus
SdJm4 sandy beach gentle sand turf 40 Juncus
SdJm5 sandy beach gentle sand turf 40 Juncus
SdFn1 sandy beach gentle sand turf 100 Phragmites
SdFn2 sandy beach gentle sand turf 100 Phragmites
SdFn3 sandy beach gentle sand turf 100 Phragmites
SdFn4 sandy beach gentle sand turf 100 Typha
SdFn5 sandy beach gentle sand turf 100 Typha
RsFd1 reeds flat clay turf 100 Phragmites
RsFd2 reeds flat clay turf 100 Phragmites
RsFd3 reeds flat clay turf 100 Phragmites
RsFd4 reeds flat clay turf 100 Phragmites
RsFd5 reeds flat clay turf 100 Phragmites
SdCJ1 sandy beach flat sand turf 15 Convolvulus
SdCJ2 sandy beach flat sand turf 15 Convolvulus
SdCJ3 sandy beach flat sand turf 15 Convolvulus
SdCJ4 sandy beach flat sand turf 15 Convolvulus
SdCJ5 sandy beach flat sand turf 15 Convolvulus
SdCS1 sandy beach flat sand turf 15 Convolvulus
SdCS2 sandy beach flat sand turf 15 Convolvulus
SdCS3 sandy beach flat sand turf 15 Convolvulus
SdCS4 sandy beach flat sand turf 15 Convolvulus
SdCS5 sandy beach flat sand turf 15 Convolvulus
Sw1 sandy beach flat grass remnants debris 30 no
Sw2 sandy beach flat grass remnants debris 0 no
Sw3 sandy beach flat grass remnants debris 0 no
Sw4 sandy beach flat woody debris debris 0 no
Sw5 pebbly steep woody debris debris 0 no