Análisis de datos de biodiversidad para IGAs

El presente documento contempla los pasos mínimos para el análisis de la biodiversidad para la elaboración de IGAs (EIAs principalmente) en R. Los métodos numéricos presentados son aplicables para comunidades terrestres, pero están principalmente diseñados para evaluar el componente hidrobiológico.

Objetivos

El presente script está diseñado para cumplir con los siguientes objetivos:

  • Análisis de la riqueza y composición taxonómica.

  • Análisis de la abundancia y abundancia relativa.

  • Cálculo de la curva de acumulación de especies.

  • Análisis de indicaodres de diversidad (Diversidad alfa)

  • Análisis de similitud (Diversidad beta)


Paquetes

library(FSA)
library(dplyr)
library(picante)
library(spacodiR)
library(reshape2)
library(cowplot)
library(vegan)
library(ggplot2)

Bases de datos empleadas

La base de datos a emplear son datos comunitarios de una comunidad de copépodos de Oslo.

Manipulación de la base de datos

Para que los datos funcionen se necesita una matriz en la que las columnas contengan los nombres de las especies y en las filas las comunidades, muestras y/o sitios de muestreo según corresponda. El contenido de la matriz contiene el número de cada especie encontrada en cada sitio (abundancias), biomasa, o datos de presencia ausencia (0 y 1).

Usualmente los datos son organizados según los parámetros explicados, sin embargo, en algunos casos los datos pueden tener una organización de basada en Sitios, Abundancia y Especies.

A continuación se presentan scripts que permiten manipular datos en ambos casos.

Visualizamos los nombres de las variables:

names(df)
##   [1] "X"                         "Cerianthus_lloydi"        
##   [3] "Halicryptus_sp"            "Onchnesoma"               
##   [5] "Phascolion_strombi"        "Golfingia_sp"             
##   [7] "Holothuroidea"             "Nemertina_indet"          
##   [9] "Polychaeta_indet"          "Amaena_trilobata"         
##  [11] "Amphicteis_gunneri"        "Ampharetidae"             
##  [13] "Anaitides_groenlandica"    "Anaitides_sp"             
##  [15] "Apistobranchus_tullbergi"  "Brada_sp"                 
##  [17] "Caulleriella_killariensis" "Caulleriella_sp"          
##  [19] "Ceratocephale_loveni"      "Chaetozone_setosa"        
##  [21] "Chone_sp"                  "Cossura_longocirrata"     
##  [23] "Diplocirrus_glaucus"       "Eteone_sp"                
##  [25] "Euchone_analis"            "Euchone_papillosa"        
##  [27] "Glycera_alba"              "Glucinde_nordmanni"       
##  [29] "Glycera_rouxi"             "Goniada_maculata"         
##  [31] "Gyptis_rosea"              "Harmothoe_nodosa"         
##  [33] "Harmothoe_sarsi"           "Harmothoe_sp"             
##  [35] "Hesionidae_"               "Heteromastus_filiformis"  
##  [37] "Jasmineira_sp"             "Lanassa_venusta"          
##  [39] "Laonice_cirrata"           "Lumbrineris_scopa"        
##  [41] "Lumbrineris_sp"            "Lysilla_loveni"           
##  [43] "Maldanidae"                "Mediomastus_fragilis"     
##  [45] "Melinna_cristata"          "Mugga_wahlbergi"          
##  [47] "Myriochele_oculata"        "Nephtys_ciliata"          
##  [49] "Nephtys_incisa"            "Nephtys_paradoxa"         
##  [51] "Oligochaeta"               "Ophelina_acuminata"       
##  [53] "Ophelina_modesta"          "Ophelina_sp"              
##  [55] "Ophiodromus_flexuosus"     "Orbinia_sertulata"        
##  [57] "Paraonis_gracilis"         "Paramphinome_jeffreysii"  
##  [59] "Paraonis_lyra"             "Pectinaria_auricoma"      
##  [61] "Pectinaria_belgica"        "Pectinaria_koreni"        
##  [63] "Pholoe_minuta"             "Phylo_norvegica"          
##  [65] "Pilargis_papillosa"        "Polydora_antennata"       
##  [67] "Polyphysia_crassa"         "Polycirrus_plumosus"      
##  [69] "Prionospio_cirrifera"      "Prionospio_malmgreni"     
##  [71] "Prionospio_steenstrupi"    "Prionospio_sp"            
##  [73] "Proclea_graffii"           "Rhodine_gracilior"        
##  [75] "Rhodine_loveni"            "Sabellidae"               
##  [77] "Scalibregma_inflatum"      "Scoloplos_armiger"        
##  [79] "Sosane_gracilis"           "Sosane_sulcata"           
##  [81] "Sphaerodorum_flavum"       "Spiophanes_kroyeri"       
##  [83] "Synelmis_klatti"           "Terebellides_stroemi"     
##  [85] "Tharyx_marioni"            "Trichobranchus_roseus"    
##  [87] "Chaetoderma_nitidulum"     "Nucula_sulcata"           
##  [89] "Nucula_tenuis"             "Nucula_nitida"            
##  [91] "Abra_alba"                 "Abra_nitida"              
##  [93] "Thyasira_sp"               "Thracea_papyracea"        
##  [95] "Mysella_bidentata"         "Corbula_gibba"            
##  [97] "Parvicardium_minimum"      "Leda_pernula"             
##  [99] "Myrtea_spinifera"          "Natica_sp"                
## [101] "Philine_sp"                "Ophisto_indet"            
## [103] "Labidoplax_buskii"         "Echinocardium_cordatum"   
## [105] "Brissopsis_lyrifera"       "Amphiura_filiformis"      
## [107] "Astropecten_sp"            "Calocaris_macandreae"     
## [109] "Amphipoda"                 "Cumacea"                  
## [111] "Crustacea_indet"

Transformamos la base de datos en formato de Sitios, Abundancia y Especies con la función melt, guardamos el resultado en ofm_melt.csv para uso posterior.

df <- melt(df, id = 1)
headtail(df)
##       X          variable value
## 1    A1 Cerianthus_lloydi     0
## 2    A2 Cerianthus_lloydi     0
## 3    A3 Cerianthus_lloydi     0
## 2638 G2   Crustacea_indet     0
## 2639 G3   Crustacea_indet     0
## 2640 G4   Crustacea_indet     0
write.csv(df, "ofm_melt.csv", row.names = FALSE)
df <- read.csv("ofm_melt.csv")
str(df)
## 'data.frame':    2640 obs. of  3 variables:
##  $ X       : Factor w/ 24 levels "A1","A2","A3",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ variable: Factor w/ 110 levels "Abra_alba","Abra_nitida",..: 18 18 18 18 18 18 18 18 18 18 ...
##  $ value   : int  0 0 0 0 0 0 0 0 0 0 ...

Después de aplicar la función melt el nombre de las variables cambia a y son guardados como X, values y variable, es necesario renombrar estas variables como Site, Abundance y Species respectivamente.

df <- df %>% rename(Site = X, Species = variable, Abundance = value)
col_order <- c("Site", "Abundance", "Species")
df <- df[, col_order]
df <- df %>% filter(Abundance != 0)

Luego usamos la función sample2matrix del paquete picante para organizar los datos en el formato para análisis del paquete vegan. Notar que sólo funcionará si la primera variable …

df <- sample2matrix(df)

Unidades de comparación (Tipo de hábitat, unidad de vegetación, Ríos, Lagunas, Zonas, etc)

En la mayoría de casos las estaciones de monitoreo o unidades de muestreo corresponden a zonas o grupos más grandes como el hábitat (Unidades de vegetación en el caso de estudios de diversidad terrestre, ríos o hábitat acuático en el caso de estudios acuáticos), estas unidades son determinadas en base al diseño de muestreo y los resultados de los análisis deben de realizarse en relación a estas unidades de comparación. Adicionalmente se pueden añadir sectores del Proyecto como las áreas de influencia Directa e Indirecta a fin de evaluar las diferencias entre éstas áreas.

Para los datos de ejemplo se han determinado seis unidades de de comparación (A a la G), éstas unidades de comparación, estas unidades deben de ser determinadas y almacenadas en una matriz de datos aparte. A continuación observamos

str(df_id)
## 'data.frame':    24 obs. of  3 variables:
##  $ AreaInf: Factor w/ 2 levels "Directa","Indirecta": 1 2 1 2 1 2 1 2 1 2 ...
##  $ Unidad : Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ Sitios : Factor w/ 24 levels "A1","A2","A3",..: 1 2 3 4 5 6 7 8 9 10 ...

Matriz de datos ambientales

En otros casos el análisis profundiza en las relaciones de la estructura comunitaria y el medio ambiente en el que se encuentra. En este caso se necesita de una matriz de datos adicional que considere estos datos ordenados para cada sitio de evaluación. Las variables a considerar dependerán de cada estudio.

Para el ejemplo, se consideran 10 variables organizadas en columnas.

str(df_env)
## 'data.frame':    24 obs. of  11 variables:
##  $ Sitios   : Factor w/ 24 levels "A1","A2","A3",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Distancia: num  0.1 0.1 0.25 0.33 0.45 1 1 1 1.1 1.3 ...
##  $ THC      : int  232 443 56 32 57 38 19 25 18 13 ...
##  $ Redox    : int  80 189 153 150 168 126 198 203 119 143 ...
##  $ Mud_perc : num  11.91 10.95 8.3 3.48 6.2 ...
##  $ Phi_mean : num  3.22 3.3 3.05 2.96 3.1 3.22 2.98 3.01 3.07 3 ...
##  $ Ba       : int  1967 1997 3143 3096 4913 2773 2099 2967 1822 1114 ...
##  $ Sr       : int  587 509 302 179 208 160 107 142 93 86 ...
##  $ Cu       : int  97 8 5 4 4 3 3 4 4 4 ...
##  $ Pb       : int  65 43 23 28 29 13 15 25 24 12 ...
##  $ Ni       : int  14 10 10 5 8 9 3 7 6 7 ...

Exploración de datos

df[1:5, 1:3]  # Muestra la matriz 5 primeras columnas y 10 filas
##    Abra_alba Abra_nitida Amaena_trilobata
## A1         0           7                1
## A2         0           4                1
## A3         0          18                1
## A4         0          12                0
## B1         1           5                0
nrow(df)  # Número de sitios
## [1] 24
ncol(df)  # Número de especies
## [1] 110
dim(df)  # Dimensiones de la matriz
## [1]  24 110
summary(df)  # Estadísticos descriptivos por columna
##    Abra_alba       Abra_nitida     Amaena_trilobata  Ampharetidae    
##  Min.   :0.0000   Min.   : 0.000   Min.   :0.000    Min.   :0.00000  
##  1st Qu.:0.0000   1st Qu.: 0.000   1st Qu.:0.000    1st Qu.:0.00000  
##  Median :0.0000   Median : 1.000   Median :0.000    Median :0.00000  
##  Mean   :0.9167   Mean   : 2.833   Mean   :0.125    Mean   :0.08333  
##  3rd Qu.:1.0000   3rd Qu.: 4.000   3rd Qu.:0.000    3rd Qu.:0.00000  
##  Max.   :6.0000   Max.   :18.000   Max.   :1.000    Max.   :1.00000  
##  Amphicteis_gunneri   Amphipoda       Amphiura_filiformis
##  Min.   :0.0000     Min.   : 0.0000   Min.   :  0.00     
##  1st Qu.:0.0000     1st Qu.: 0.0000   1st Qu.:  0.00     
##  Median :0.0000     Median : 0.0000   Median :  0.00     
##  Mean   :0.3333     Mean   : 0.6667   Mean   : 23.83     
##  3rd Qu.:0.0000     3rd Qu.: 0.2500   3rd Qu.:  0.25     
##  Max.   :4.0000     Max.   :10.0000   Max.   :163.00     
##  Anaitides_groenlandica  Anaitides_sp     Apistobranchus_tullbergi
##  Min.   :0.00000        Min.   :0.00000   Min.   :0.00000         
##  1st Qu.:0.00000        1st Qu.:0.00000   1st Qu.:0.00000         
##  Median :0.00000        Median :0.00000   Median :0.00000         
##  Mean   :0.04167        Mean   :0.04167   Mean   :0.04167         
##  3rd Qu.:0.00000        3rd Qu.:0.00000   3rd Qu.:0.00000         
##  Max.   :1.00000        Max.   :1.00000   Max.   :1.00000         
##  Astropecten_sp       Brada_sp      Brissopsis_lyrifera
##  Min.   :0.00000   Min.   : 0.000   Min.   :0.00000    
##  1st Qu.:0.00000   1st Qu.: 0.000   1st Qu.:0.00000    
##  Median :0.00000   Median : 0.000   Median :0.00000    
##  Mean   :0.04167   Mean   : 2.208   Mean   :0.08333    
##  3rd Qu.:0.00000   3rd Qu.: 1.500   3rd Qu.:0.00000    
##  Max.   :1.00000   Max.   :22.000   Max.   :1.00000    
##  Calocaris_macandreae Caulleriella_killariensis Caulleriella_sp
##  Min.   :0.00000      Min.   :0.000             Min.   :0.0    
##  1st Qu.:0.00000      1st Qu.:0.000             1st Qu.:0.0    
##  Median :0.00000      Median :0.000             Median :0.0    
##  Mean   :0.04167      Mean   :0.125             Mean   :0.5    
##  3rd Qu.:0.00000      3rd Qu.:0.000             3rd Qu.:0.0    
##  Max.   :1.00000      Max.   :3.000             Max.   :8.0    
##  Ceratocephale_loveni Cerianthus_lloydi Chaetoderma_nitidulum
##  Min.   :0.0000       Min.   :0.00      Min.   :0.000        
##  1st Qu.:0.0000       1st Qu.:0.00      1st Qu.:0.000        
##  Median :0.0000       Median :0.00      Median :0.000        
##  Mean   :0.2083       Mean   :0.50      Mean   :0.625        
##  3rd Qu.:0.0000       3rd Qu.:0.25      3rd Qu.:1.000        
##  Max.   :2.0000       Max.   :4.00      Max.   :5.000        
##  Chaetozone_setosa    Chone_sp      Corbula_gibba    Cossura_longocirrata
##  Min.   :  0.00    Min.   : 0.000   Min.   : 0.000   Min.   : 0.00       
##  1st Qu.:  0.00    1st Qu.: 0.000   1st Qu.: 0.000   1st Qu.: 0.00       
##  Median :  0.50    Median : 0.000   Median : 0.000   Median : 0.50       
##  Mean   : 14.88    Mean   : 1.292   Mean   : 6.958   Mean   :11.33       
##  3rd Qu.: 18.25    3rd Qu.: 0.500   3rd Qu.:10.000   3rd Qu.:11.50       
##  Max.   :153.00    Max.   :12.000   Max.   :46.000   Max.   :85.00       
##  Crustacea_indet    Cumacea       Diplocirrus_glaucus
##  Min.   :0.00    Min.   : 0.000   Min.   :0.0000     
##  1st Qu.:0.00    1st Qu.: 0.000   1st Qu.:0.0000     
##  Median :0.00    Median : 0.000   Median :0.0000     
##  Mean   :0.25    Mean   : 1.292   Mean   :0.7083     
##  3rd Qu.:0.00    3rd Qu.: 1.000   3rd Qu.:1.0000     
##  Max.   :2.00    Max.   :18.000   Max.   :4.0000     
##  Echinocardium_cordatum   Eteone_sp      Euchone_analis  Euchone_papillosa
##  Min.   : 0.00          Min.   :0.0000   Min.   :0.000   Min.   :0.00000  
##  1st Qu.: 0.00          1st Qu.:0.0000   1st Qu.:0.000   1st Qu.:0.00000  
##  Median : 0.00          Median :0.0000   Median :0.000   Median :0.00000  
##  Mean   : 3.00          Mean   :0.2917   Mean   :0.125   Mean   :0.08333  
##  3rd Qu.: 4.75          3rd Qu.:0.0000   3rd Qu.:0.000   3rd Qu.:0.00000  
##  Max.   :16.00          Max.   :3.0000   Max.   :2.000   Max.   :1.00000  
##  Glucinde_nordmanni  Glycera_alba    Glycera_rouxi  Golfingia_sp    
##  Min.   :0.00000    Min.   :0.0000   Min.   :0.0   Min.   :0.00000  
##  1st Qu.:0.00000    1st Qu.:0.0000   1st Qu.:0.0   1st Qu.:0.00000  
##  Median :0.00000    Median :0.0000   Median :0.0   Median :0.00000  
##  Mean   :0.04167    Mean   :0.7083   Mean   :0.5   Mean   :0.04167  
##  3rd Qu.:0.00000    3rd Qu.:1.0000   3rd Qu.:1.0   3rd Qu.:0.00000  
##  Max.   :1.00000    Max.   :3.0000   Max.   :3.0   Max.   :1.00000  
##  Goniada_maculata  Gyptis_rosea   Halicryptus_sp    Harmothoe_nodosa 
##  Min.   : 0.000   Min.   :0.000   Min.   :0.00000   Min.   :0.00000  
##  1st Qu.: 0.000   1st Qu.:0.000   1st Qu.:0.00000   1st Qu.:0.00000  
##  Median : 1.000   Median :0.000   Median :0.00000   Median :0.00000  
##  Mean   : 3.167   Mean   :0.125   Mean   :0.08333   Mean   :0.08333  
##  3rd Qu.: 4.500   3rd Qu.:0.000   3rd Qu.:0.00000   3rd Qu.:0.00000  
##  Max.   :15.000   Max.   :1.000   Max.   :1.00000   Max.   :2.00000  
##  Harmothoe_sarsi  Harmothoe_sp      Hesionidae_     
##  Min.   : 0.0    Min.   :0.00000   Min.   :0.00000  
##  1st Qu.: 0.0    1st Qu.:0.00000   1st Qu.:0.00000  
##  Median : 0.0    Median :0.00000   Median :0.00000  
##  Mean   : 0.5    Mean   :0.08333   Mean   :0.04167  
##  3rd Qu.: 0.0    3rd Qu.:0.00000   3rd Qu.:0.00000  
##  Max.   :10.0    Max.   :2.00000   Max.   :1.00000  
##  Heteromastus_filiformis Holothuroidea    Jasmineira_sp  Labidoplax_buskii
##  Min.   :  0.00          Min.   :0.0000   Min.   :0.00   Min.   :  0.00   
##  1st Qu.:  0.75          1st Qu.:0.0000   1st Qu.:0.00   1st Qu.:  0.00   
##  Median : 23.50          Median :0.0000   Median :0.00   Median :  0.00   
##  Mean   : 94.83          Mean   :0.8333   Mean   :0.25   Mean   : 17.46   
##  3rd Qu.:176.00          3rd Qu.:1.0000   3rd Qu.:0.00   3rd Qu.:  8.00   
##  Max.   :477.00          Max.   :5.0000   Max.   :2.00   Max.   :120.00   
##  Lanassa_venusta   Laonice_cirrata    Leda_pernula    Lumbrineris_scopa
##  Min.   :0.00000   Min.   :0.00000   Min.   :0.0000   Min.   :0.000    
##  1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.:0.0000   1st Qu.:0.000    
##  Median :0.00000   Median :0.00000   Median :0.0000   Median :0.000    
##  Mean   :0.04167   Mean   :0.08333   Mean   :0.2917   Mean   :0.375    
##  3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.:0.0000   3rd Qu.:0.000    
##  Max.   :1.00000   Max.   :1.00000   Max.   :3.0000   Max.   :5.000    
##  Lumbrineris_sp    Lysilla_loveni      Maldanidae     
##  Min.   :0.00000   Min.   :0.00000   Min.   :0.00000  
##  1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.:0.00000  
##  Median :0.00000   Median :0.00000   Median :0.00000  
##  Mean   :0.04167   Mean   :0.08333   Mean   :0.04167  
##  3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.:0.00000  
##  Max.   :1.00000   Max.   :2.00000   Max.   :1.00000  
##  Mediomastus_fragilis Melinna_cristata Mugga_wahlbergi  Myriochele_oculata
##  Min.   :0.000        Min.   : 0.000   Min.   :0.0000   Min.   : 0.00     
##  1st Qu.:0.000        1st Qu.: 0.000   1st Qu.:0.0000   1st Qu.: 1.00     
##  Median :0.000        Median : 1.000   Median :0.0000   Median :13.00     
##  Mean   :1.125        Mean   : 3.458   Mean   :0.3333   Mean   :17.54     
##  3rd Qu.:0.250        3rd Qu.: 4.000   3rd Qu.:0.0000   3rd Qu.:25.00     
##  Max.   :8.000        Max.   :14.000   Max.   :4.0000   Max.   :74.00     
##  Myrtea_spinifera Mysella_bidentata   Natica_sp      Nemertina_indet 
##  Min.   :0.000    Min.   : 0.000    Min.   :0.0000   Min.   : 0.000  
##  1st Qu.:0.000    1st Qu.: 0.000    1st Qu.:0.0000   1st Qu.: 1.750  
##  Median :0.000    Median : 0.000    Median :0.0000   Median : 5.000  
##  Mean   :1.833    Mean   : 1.667    Mean   :0.1667   Mean   : 7.167  
##  3rd Qu.:5.000    3rd Qu.: 0.000    3rd Qu.:0.0000   3rd Qu.: 9.750  
##  Max.   :8.000    Max.   :15.000    Max.   :2.0000   Max.   :40.000  
##  Nephtys_ciliata  Nephtys_incisa    Nephtys_paradoxa  Nucula_nitida   
##  Min.   :0.0000   Min.   :0.00000   Min.   :0.00000   Min.   : 0.000  
##  1st Qu.:0.0000   1st Qu.:0.00000   1st Qu.:0.00000   1st Qu.: 0.000  
##  Median :0.0000   Median :0.00000   Median :0.00000   Median : 0.000  
##  Mean   :0.8333   Mean   :0.04167   Mean   :0.08333   Mean   : 3.667  
##  3rd Qu.:1.0000   3rd Qu.:0.00000   3rd Qu.:0.00000   3rd Qu.: 6.500  
##  Max.   :6.0000   Max.   :1.00000   Max.   :1.00000   Max.   :23.000  
##  Nucula_sulcata   Nucula_tenuis     Oligochaeta      Onchnesoma     
##  Min.   :0.0000   Min.   : 0.000   Min.   :0.000   Min.   :0.00000  
##  1st Qu.:0.0000   1st Qu.: 0.000   1st Qu.:0.000   1st Qu.:0.00000  
##  Median :0.0000   Median : 1.500   Median :0.000   Median :0.00000  
##  Mean   :0.9167   Mean   : 3.125   Mean   :0.125   Mean   :0.08333  
##  3rd Qu.:0.0000   3rd Qu.: 3.250   3rd Qu.:0.000   3rd Qu.:0.00000  
##  Max.   :7.0000   Max.   :20.000   Max.   :3.000   Max.   :1.00000  
##  Ophelina_acuminata Ophelina_modesta  Ophelina_sp     
##  Min.   :0.00000    Min.   :0.000    Min.   :0.00000  
##  1st Qu.:0.00000    1st Qu.:0.000    1st Qu.:0.00000  
##  Median :0.00000    Median :0.000    Median :0.00000  
##  Mean   :0.08333    Mean   :0.125    Mean   :0.04167  
##  3rd Qu.:0.00000    3rd Qu.:0.000    3rd Qu.:0.00000  
##  Max.   :2.00000    Max.   :1.000    Max.   :1.00000  
##  Ophiodromus_flexuosus Ophisto_indet    Orbinia_sertulata
##  Min.   :0.0000        Min.   :0.0000   Min.   :0.00000  
##  1st Qu.:0.0000        1st Qu.:0.0000   1st Qu.:0.00000  
##  Median :0.0000        Median :0.0000   Median :0.00000  
##  Mean   :0.1667        Mean   :0.8333   Mean   :0.04167  
##  3rd Qu.:0.0000        3rd Qu.:0.2500   3rd Qu.:0.00000  
##  Max.   :2.0000        Max.   :6.0000   Max.   :1.00000  
##  Paramphinome_jeffreysii Paraonis_gracilis Paraonis_lyra  
##  Min.   : 0.000          Min.   : 0.00     Min.   : 0.00  
##  1st Qu.: 0.000          1st Qu.: 0.00     1st Qu.: 0.00  
##  Median : 0.000          Median : 1.00     Median : 2.00  
##  Mean   : 2.125          Mean   : 2.50     Mean   : 3.75  
##  3rd Qu.: 2.250          3rd Qu.: 3.25     3rd Qu.: 6.00  
##  Max.   :15.000          Max.   :16.00     Max.   :15.00  
##  Parvicardium_minimum Pectinaria_auricoma Pectinaria_belgica
##  Min.   :0.0000       Min.   :0.00000     Min.   :0.00000   
##  1st Qu.:0.0000       1st Qu.:0.00000     1st Qu.:0.00000   
##  Median :0.0000       Median :0.00000     Median :0.00000   
##  Mean   :0.1667       Mean   :0.08333     Mean   :0.04167   
##  3rd Qu.:0.0000       3rd Qu.:0.00000     3rd Qu.:0.00000   
##  Max.   :2.0000       Max.   :1.00000     Max.   :1.00000   
##  Pectinaria_koreni Phascolion_strombi   Philine_sp     Pholoe_minuta  
##  Min.   :0.00000   Min.   :0.00000    Min.   :0.0000   Min.   :0.000  
##  1st Qu.:0.00000   1st Qu.:0.00000    1st Qu.:0.0000   1st Qu.:0.000  
##  Median :0.00000   Median :0.00000    Median :0.0000   Median :1.000  
##  Mean   :0.04167   Mean   :0.08333    Mean   :0.9583   Mean   :1.167  
##  3rd Qu.:0.00000   3rd Qu.:0.00000    3rd Qu.:1.2500   3rd Qu.:2.000  
##  Max.   :1.00000   Max.   :1.00000    Max.   :5.0000   Max.   :4.000  
##  Phylo_norvegica  Pilargis_papillosa Polychaeta_indet Polycirrus_plumosus
##  Min.   :0.0000   Min.   :0.0000     Min.   :0.0000   Min.   :0.0000     
##  1st Qu.:0.0000   1st Qu.:0.0000     1st Qu.:0.0000   1st Qu.:0.0000     
##  Median :0.0000   Median :0.0000     Median :0.0000   Median :0.0000     
##  Mean   :0.2083   Mean   :0.6667     Mean   :0.4167   Mean   :0.3333     
##  3rd Qu.:0.0000   3rd Qu.:0.2500     3rd Qu.:0.0000   3rd Qu.:0.0000     
##  Max.   :3.0000   Max.   :6.0000     Max.   :5.0000   Max.   :4.0000     
##  Polydora_antennata Polyphysia_crassa Prionospio_cirrifera
##  Min.   :0.0000     Min.   :0.0000    Min.   : 0.00       
##  1st Qu.:0.0000     1st Qu.:0.0000    1st Qu.: 0.00       
##  Median :0.0000     Median :0.0000    Median : 1.00       
##  Mean   :0.3333     Mean   :0.4583    Mean   :11.67       
##  3rd Qu.:0.0000     3rd Qu.:0.0000    3rd Qu.: 2.00       
##  Max.   :4.0000     Max.   :5.0000    Max.   :87.00       
##  Prionospio_malmgreni Prionospio_sp    Prionospio_steenstrupi
##  Min.   : 0.000       Min.   :0.0000   Min.   :0.00000       
##  1st Qu.: 3.000       1st Qu.:0.0000   1st Qu.:0.00000       
##  Median : 5.000       Median :0.0000   Median :0.00000       
##  Mean   : 6.458       Mean   :0.5833   Mean   :0.04167       
##  3rd Qu.:10.000       3rd Qu.:0.0000   3rd Qu.:0.00000       
##  Max.   :18.000       Max.   :5.0000   Max.   :1.00000       
##  Proclea_graffii  Rhodine_gracilior Rhodine_loveni     Sabellidae     
##  Min.   : 0.000   Min.   :0.00      Min.   : 0.000   Min.   :0.00000  
##  1st Qu.: 0.000   1st Qu.:0.00      1st Qu.: 0.000   1st Qu.:0.00000  
##  Median : 0.000   Median :0.00      Median : 0.000   Median :0.00000  
##  Mean   : 2.667   Mean   :0.25      Mean   : 1.208   Mean   :0.08333  
##  3rd Qu.: 1.000   3rd Qu.:0.00      3rd Qu.: 1.000   3rd Qu.:0.00000  
##  Max.   :35.000   Max.   :2.00      Max.   :11.000   Max.   :1.00000  
##  Scalibregma_inflatum Scoloplos_armiger Sosane_gracilis  Sosane_sulcata  
##  Min.   :0.0000       Min.   :0.0000    Min.   :0.0000   Min.   :0.0000  
##  1st Qu.:0.0000       1st Qu.:0.0000    1st Qu.:0.0000   1st Qu.:0.0000  
##  Median :0.0000       Median :0.0000    Median :0.0000   Median :0.0000  
##  Mean   :0.2917       Mean   :0.9167    Mean   :0.5833   Mean   :0.1667  
##  3rd Qu.:0.2500       3rd Qu.:1.0000    3rd Qu.:1.0000   3rd Qu.:0.0000  
##  Max.   :2.0000       Max.   :4.0000    Max.   :4.0000   Max.   :2.0000  
##  Sphaerodorum_flavum Spiophanes_kroyeri Synelmis_klatti 
##  Min.   :0.000       Min.   : 0.000     Min.   :0.0000  
##  1st Qu.:0.000       1st Qu.: 0.000     1st Qu.:0.0000  
##  Median :0.000       Median : 1.500     Median :1.0000  
##  Mean   :0.125       Mean   : 2.917     Mean   :0.9583  
##  3rd Qu.:0.000       3rd Qu.: 4.250     3rd Qu.:2.0000  
##  Max.   :2.000       Max.   :15.000     Max.   :4.0000  
##  Terebellides_stroemi Tharyx_marioni   Thracea_papyracea  Thyasira_sp    
##  Min.   :0.0000       Min.   : 0.000   Min.   :0.00000   Min.   :  0.00  
##  1st Qu.:0.0000       1st Qu.: 0.000   1st Qu.:0.00000   1st Qu.:  1.75  
##  Median :0.0000       Median : 0.500   Median :0.00000   Median :  6.00  
##  Mean   :0.4167       Mean   : 3.125   Mean   :0.08333   Mean   : 25.38  
##  3rd Qu.:1.0000       3rd Qu.: 3.250   3rd Qu.:0.00000   3rd Qu.: 54.50  
##  Max.   :3.0000       Max.   :18.000   Max.   :2.00000   Max.   :102.00  
##  Trichobranchus_roseus
##  Min.   :0.000        
##  1st Qu.:0.000        
##  Median :0.000        
##  Mean   :0.125        
##  3rd Qu.:0.000        
##  Max.   :1.000

Calculamos el rango de abundancias presentes en la matriz

range(df)
## [1]   0 477

Calculamos el rango de abundancias para cada especie

apply(df, 2, range)
##      Abra_alba Abra_nitida Amaena_trilobata Ampharetidae
## [1,]         0           0                0            0
## [2,]         6          18                1            1
##      Amphicteis_gunneri Amphipoda Amphiura_filiformis
## [1,]                  0         0                   0
## [2,]                  4        10                 163
##      Anaitides_groenlandica Anaitides_sp Apistobranchus_tullbergi
## [1,]                      0            0                        0
## [2,]                      1            1                        1
##      Astropecten_sp Brada_sp Brissopsis_lyrifera Calocaris_macandreae
## [1,]              0        0                   0                    0
## [2,]              1       22                   1                    1
##      Caulleriella_killariensis Caulleriella_sp Ceratocephale_loveni
## [1,]                         0               0                    0
## [2,]                         3               8                    2
##      Cerianthus_lloydi Chaetoderma_nitidulum Chaetozone_setosa Chone_sp
## [1,]                 0                     0                 0        0
## [2,]                 4                     5               153       12
##      Corbula_gibba Cossura_longocirrata Crustacea_indet Cumacea
## [1,]             0                    0               0       0
## [2,]            46                   85               2      18
##      Diplocirrus_glaucus Echinocardium_cordatum Eteone_sp Euchone_analis
## [1,]                   0                      0         0              0
## [2,]                   4                     16         3              2
##      Euchone_papillosa Glucinde_nordmanni Glycera_alba Glycera_rouxi
## [1,]                 0                  0            0             0
## [2,]                 1                  1            3             3
##      Golfingia_sp Goniada_maculata Gyptis_rosea Halicryptus_sp
## [1,]            0                0            0              0
## [2,]            1               15            1              1
##      Harmothoe_nodosa Harmothoe_sarsi Harmothoe_sp Hesionidae_
## [1,]                0               0            0           0
## [2,]                2              10            2           1
##      Heteromastus_filiformis Holothuroidea Jasmineira_sp Labidoplax_buskii
## [1,]                       0             0             0                 0
## [2,]                     477             5             2               120
##      Lanassa_venusta Laonice_cirrata Leda_pernula Lumbrineris_scopa
## [1,]               0               0            0                 0
## [2,]               1               1            3                 5
##      Lumbrineris_sp Lysilla_loveni Maldanidae Mediomastus_fragilis
## [1,]              0              0          0                    0
## [2,]              1              2          1                    8
##      Melinna_cristata Mugga_wahlbergi Myriochele_oculata Myrtea_spinifera
## [1,]                0               0                  0                0
## [2,]               14               4                 74                8
##      Mysella_bidentata Natica_sp Nemertina_indet Nephtys_ciliata
## [1,]                 0         0               0               0
## [2,]                15         2              40               6
##      Nephtys_incisa Nephtys_paradoxa Nucula_nitida Nucula_sulcata
## [1,]              0                0             0              0
## [2,]              1                1            23              7
##      Nucula_tenuis Oligochaeta Onchnesoma Ophelina_acuminata
## [1,]             0           0          0                  0
## [2,]            20           3          1                  2
##      Ophelina_modesta Ophelina_sp Ophiodromus_flexuosus Ophisto_indet
## [1,]                0           0                     0             0
## [2,]                1           1                     2             6
##      Orbinia_sertulata Paramphinome_jeffreysii Paraonis_gracilis
## [1,]                 0                       0                 0
## [2,]                 1                      15                16
##      Paraonis_lyra Parvicardium_minimum Pectinaria_auricoma
## [1,]             0                    0                   0
## [2,]            15                    2                   1
##      Pectinaria_belgica Pectinaria_koreni Phascolion_strombi Philine_sp
## [1,]                  0                 0                  0          0
## [2,]                  1                 1                  1          5
##      Pholoe_minuta Phylo_norvegica Pilargis_papillosa Polychaeta_indet
## [1,]             0               0                  0                0
## [2,]             4               3                  6                5
##      Polycirrus_plumosus Polydora_antennata Polyphysia_crassa
## [1,]                   0                  0                 0
## [2,]                   4                  4                 5
##      Prionospio_cirrifera Prionospio_malmgreni Prionospio_sp
## [1,]                    0                    0             0
## [2,]                   87                   18             5
##      Prionospio_steenstrupi Proclea_graffii Rhodine_gracilior
## [1,]                      0               0                 0
## [2,]                      1              35                 2
##      Rhodine_loveni Sabellidae Scalibregma_inflatum Scoloplos_armiger
## [1,]              0          0                    0                 0
## [2,]             11          1                    2                 4
##      Sosane_gracilis Sosane_sulcata Sphaerodorum_flavum Spiophanes_kroyeri
## [1,]               0              0                   0                  0
## [2,]               4              2                   2                 15
##      Synelmis_klatti Terebellides_stroemi Tharyx_marioni Thracea_papyracea
## [1,]               0                    0              0                 0
## [2,]               4                    3             18                 2
##      Thyasira_sp Trichobranchus_roseus
## [1,]           0                     0
## [2,]         102                     1

Contamos el número de casos por cada clase de abundancia

(ab <- table(unlist(df)))
## 
##    0    1    2    3    4    5    6    7    8    9   10   11   12   13   14 
## 1979  245   92   60   47   36   23   12   13    7   12    5    9   10   10 
##   15   16   18   19   20   21   22   23   24   26   27   28   29   31   33 
##    7    2    7    4    4    1    1    1    1    1    1    1    1    1    2 
##   35   36   38   40   41   44   45   46   51   52   54   55   62   66   68 
##    2    3    1    2    1    1    1    1    1    1    1    1    1    1    2 
##   69   74   80   81   85   87   93  100  102  118  120  124  125  134  153 
##    2    1    1    1    1    1    1    1    1    1    1    1    1    1    1 
##  155  163  169  197  205  244  290  295  477 
##    1    1    1    1    1    1    1    1    1
ab.df <- as.data.frame(ab)
str(as.data.frame(ab.df))
## 'data.frame':    69 obs. of  2 variables:
##  $ Var1: Factor w/ 69 levels "0","1","2","3",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Freq: int  1979 245 92 60 47 36 23 12 13 7 ...
ggplot(ab.df, aes(Var1, Freq)) + geom_bar(stat = "identity") + labs(x = "Abundancias", 
    y = "Frecuencias") + theme_bw() + theme(axis.text.x = element_text(angle = 60, 
    hjust = 1))

Número de ausencias y proporción de ceros presentes en la base de datos

sum(df == 0)
## [1] 1979
sum(df == 0)/(nrow(df) * ncol(df))
## [1] 0.7496212

Calculamos en número de sitios en que cada especie está presente

spe.pres <- apply(df > 0, 2, sum)

Ordenamos los números en orden descendente.

sort(spe.pres)
##    Anaitides_groenlandica              Anaitides_sp 
##                         1                         1 
##  Apistobranchus_tullbergi            Astropecten_sp 
##                         1                         1 
##      Calocaris_macandreae Caulleriella_killariensis 
##                         1                         1 
##        Glucinde_nordmanni              Golfingia_sp 
##                         1                         1 
##          Harmothoe_nodosa              Harmothoe_sp 
##                         1                         1 
##               Hesionidae_           Lanassa_venusta 
##                         1                         1 
##            Lumbrineris_sp            Lysilla_loveni 
##                         1                         1 
##                Maldanidae            Nephtys_incisa 
##                         1                         1 
##               Oligochaeta        Ophelina_acuminata 
##                         1                         1 
##               Ophelina_sp         Orbinia_sertulata 
##                         1                         1 
##        Pectinaria_belgica         Pectinaria_koreni 
##                         1                         1 
##    Prionospio_steenstrupi         Thracea_papyracea 
##                         1                         1 
##              Ampharetidae       Brissopsis_lyrifera 
##                         2                         2 
##            Euchone_analis         Euchone_papillosa 
##                         2                         2 
##            Halicryptus_sp           Laonice_cirrata 
##                         2                         2 
##          Nephtys_paradoxa                Onchnesoma 
##                         2                         2 
##       Pectinaria_auricoma        Phascolion_strombi 
##                         2                         2 
##                Sabellidae       Sphaerodorum_flavum 
##                         2                         2 
##          Amaena_trilobata           Caulleriella_sp 
##                         3                         3 
##                 Eteone_sp              Gyptis_rosea 
##                         3                         3 
##           Harmothoe_sarsi         Lumbrineris_scopa 
##                         3                         3 
##                 Natica_sp          Ophelina_modesta 
##                         3                         3 
##     Ophiodromus_flexuosus      Parvicardium_minimum 
##                         3                         3 
##           Phylo_norvegica        Polydora_antennata 
##                         3                         3 
##            Sosane_sulcata     Trichobranchus_roseus 
##                         3                         3 
##      Ceratocephale_loveni            Nucula_sulcata 
##                         4                         4 
##       Polycirrus_plumosus             Prionospio_sp 
##                         4                         4 
##         Rhodine_gracilior        Amphicteis_gunneri 
##                         4                         5 
##           Crustacea_indet             Jasmineira_sp 
##                         5                         5 
##              Leda_pernula           Mugga_wahlbergi 
##                         5                         5 
##         Mysella_bidentata          Polychaeta_indet 
##                         5                         5 
##         Polyphysia_crassa                 Amphipoda 
##                         5                         6 
##       Amphiura_filiformis         Cerianthus_lloydi 
##                         6                         6 
##                  Chone_sp      Mediomastus_fragilis 
##                         6                         6 
##             Ophisto_indet        Pilargis_papillosa 
##                         6                         6 
##      Scalibregma_inflatum                   Cumacea 
##                         6                         7 
##             Glycera_rouxi      Terebellides_stroemi 
##                         7                         7 
##                 Abra_alba                  Brada_sp 
##                         8                         8 
##    Echinocardium_cordatum             Holothuroidea 
##                         8                         8 
##          Myrtea_spinifera              Glycera_alba 
##                         8                         9 
##         Labidoplax_buskii           Nephtys_ciliata 
##                         9                         9 
##             Nucula_nitida                Philine_sp 
##                         9                         9 
##           Proclea_graffii         Scoloplos_armiger 
##                         9                         9 
##           Sosane_gracilis     Chaetoderma_nitidulum 
##                         9                        10 
##             Corbula_gibba       Diplocirrus_glaucus 
##                        10                        10 
##   Paramphinome_jeffreysii            Rhodine_loveni 
##                        11                        11 
##         Chaetozone_setosa      Cossura_longocirrata 
##                        12                        12 
##            Tharyx_marioni          Melinna_cristata 
##                        12                        13 
##         Paraonis_gracilis           Synelmis_klatti 
##                        13                        13 
##               Abra_nitida          Goniada_maculata 
##                        14                        14 
##      Prionospio_cirrifera             Nucula_tenuis 
##                        14                        15 
##             Paraonis_lyra             Pholoe_minuta 
##                        15                        15 
##        Spiophanes_kroyeri   Heteromastus_filiformis 
##                        15                        18 
##           Nemertina_indet               Thyasira_sp 
##                        20                        20 
##      Prionospio_malmgreni        Myriochele_oculata 
##                        21                        22

Calculamos el porcentaje de frecuencias y redondeamos a un dígito

spe.relf <- 100 * spe.pres/nrow(df)
round(sort(spe.relf), 1)
##    Anaitides_groenlandica              Anaitides_sp 
##                       4.2                       4.2 
##  Apistobranchus_tullbergi            Astropecten_sp 
##                       4.2                       4.2 
##      Calocaris_macandreae Caulleriella_killariensis 
##                       4.2                       4.2 
##        Glucinde_nordmanni              Golfingia_sp 
##                       4.2                       4.2 
##          Harmothoe_nodosa              Harmothoe_sp 
##                       4.2                       4.2 
##               Hesionidae_           Lanassa_venusta 
##                       4.2                       4.2 
##            Lumbrineris_sp            Lysilla_loveni 
##                       4.2                       4.2 
##                Maldanidae            Nephtys_incisa 
##                       4.2                       4.2 
##               Oligochaeta        Ophelina_acuminata 
##                       4.2                       4.2 
##               Ophelina_sp         Orbinia_sertulata 
##                       4.2                       4.2 
##        Pectinaria_belgica         Pectinaria_koreni 
##                       4.2                       4.2 
##    Prionospio_steenstrupi         Thracea_papyracea 
##                       4.2                       4.2 
##              Ampharetidae       Brissopsis_lyrifera 
##                       8.3                       8.3 
##            Euchone_analis         Euchone_papillosa 
##                       8.3                       8.3 
##            Halicryptus_sp           Laonice_cirrata 
##                       8.3                       8.3 
##          Nephtys_paradoxa                Onchnesoma 
##                       8.3                       8.3 
##       Pectinaria_auricoma        Phascolion_strombi 
##                       8.3                       8.3 
##                Sabellidae       Sphaerodorum_flavum 
##                       8.3                       8.3 
##          Amaena_trilobata           Caulleriella_sp 
##                      12.5                      12.5 
##                 Eteone_sp              Gyptis_rosea 
##                      12.5                      12.5 
##           Harmothoe_sarsi         Lumbrineris_scopa 
##                      12.5                      12.5 
##                 Natica_sp          Ophelina_modesta 
##                      12.5                      12.5 
##     Ophiodromus_flexuosus      Parvicardium_minimum 
##                      12.5                      12.5 
##           Phylo_norvegica        Polydora_antennata 
##                      12.5                      12.5 
##            Sosane_sulcata     Trichobranchus_roseus 
##                      12.5                      12.5 
##      Ceratocephale_loveni            Nucula_sulcata 
##                      16.7                      16.7 
##       Polycirrus_plumosus             Prionospio_sp 
##                      16.7                      16.7 
##         Rhodine_gracilior        Amphicteis_gunneri 
##                      16.7                      20.8 
##           Crustacea_indet             Jasmineira_sp 
##                      20.8                      20.8 
##              Leda_pernula           Mugga_wahlbergi 
##                      20.8                      20.8 
##         Mysella_bidentata          Polychaeta_indet 
##                      20.8                      20.8 
##         Polyphysia_crassa                 Amphipoda 
##                      20.8                      25.0 
##       Amphiura_filiformis         Cerianthus_lloydi 
##                      25.0                      25.0 
##                  Chone_sp      Mediomastus_fragilis 
##                      25.0                      25.0 
##             Ophisto_indet        Pilargis_papillosa 
##                      25.0                      25.0 
##      Scalibregma_inflatum                   Cumacea 
##                      25.0                      29.2 
##             Glycera_rouxi      Terebellides_stroemi 
##                      29.2                      29.2 
##                 Abra_alba                  Brada_sp 
##                      33.3                      33.3 
##    Echinocardium_cordatum             Holothuroidea 
##                      33.3                      33.3 
##          Myrtea_spinifera              Glycera_alba 
##                      33.3                      37.5 
##         Labidoplax_buskii           Nephtys_ciliata 
##                      37.5                      37.5 
##             Nucula_nitida                Philine_sp 
##                      37.5                      37.5 
##           Proclea_graffii         Scoloplos_armiger 
##                      37.5                      37.5 
##           Sosane_gracilis     Chaetoderma_nitidulum 
##                      37.5                      41.7 
##             Corbula_gibba       Diplocirrus_glaucus 
##                      41.7                      41.7 
##   Paramphinome_jeffreysii            Rhodine_loveni 
##                      45.8                      45.8 
##         Chaetozone_setosa      Cossura_longocirrata 
##                      50.0                      50.0 
##            Tharyx_marioni          Melinna_cristata 
##                      50.0                      54.2 
##         Paraonis_gracilis           Synelmis_klatti 
##                      54.2                      54.2 
##               Abra_nitida          Goniada_maculata 
##                      58.3                      58.3 
##      Prionospio_cirrifera             Nucula_tenuis 
##                      58.3                      62.5 
##             Paraonis_lyra             Pholoe_minuta 
##                      62.5                      62.5 
##        Spiophanes_kroyeri   Heteromastus_filiformis 
##                      62.5                      75.0 
##           Nemertina_indet               Thyasira_sp 
##                      83.3                      83.3 
##      Prionospio_malmgreni        Myriochele_oculata 
##                      87.5                      91.7
Ocurr <- as.data.frame(cbind(spe.pres, spe.relf))
headtail(Ocurr)
##                       spe.pres  spe.relf
## Abra_alba                    8 33.333333
## Abra_nitida                 14 58.333333
## Amaena_trilobata             3 12.500000
## Thracea_papyracea            1  4.166667
## Thyasira_sp                 20 83.333333
## Trichobranchus_roseus        3 12.500000
Oc_A <- ggplot(Ocurr, aes(spe.pres)) + geom_histogram() + labs(x = "Ocurrencia de especies", 
    y = "N° de especies") + theme_bw()

Oc_B <- ggplot(Ocurr, aes(spe.relf)) + geom_histogram() + labs(x = "Frecuencia relativa de espcies", 
    y = "N° de especies") + theme_bw()

plot_grid(Oc_A, Oc_B, labels = "AUTO", nrow = 1, align = "v")

Comparando la riqueza entre sitios, calculamos el número de especies en cada sitio, para sumar por filas, el segundo arumento de apply(), MARGIN es puesto en 1. Luego se orden en orden creciente.

Sitios <- as.factor(rownames(df))
Sitios_num <- as.numeric(as.factor(rownames(df)))
Riqueza <- specnumber(df)
sit.riq <- as.data.frame(Riqueza)

sit.ab <- df %>% mutate(Abundancia = rowSums(.)) %>% select(tail(names(.), 1))
sit.riqab <- cbind(Sitios, Sitios_num, sit.ab, sit.riq)
str(sit.riqab)
## 'data.frame':    24 obs. of  4 variables:
##  $ Sitios    : Factor w/ 24 levels "A1","A2","A3",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Sitios_num: num  1 2 3 4 5 6 7 8 9 10 ...
##  $ Abundancia: Named num  143 108 135 150 657 275 404 472 43 323 ...
##   ..- attr(*, "names")= chr  "A1" "A2" "A3" "A4" ...
##  $ Riqueza   : int  32 28 37 39 42 21 35 27 14 20 ...
headtail(sit.riqab)
##    Sitios Sitios_num Abundancia Riqueza
## A1     A1          1        143      32
## A2     A2          2        108      28
## A3     A3          3        135      37
## G2     G2         22        206      21
## G3     G3         23        147      22
## G4     G4         24        115      20

Graficamos

Riq_plot <- ggplot(sit.riqab, aes(Sitios_num, Riqueza)) + geom_point(stat = "identity", 
    size = 2) + geom_step(stat = "identity", position = "identity") + geom_text(data = sit.riqab, 
    mapping = aes(x = Sitios_num, y = Riqueza, label = Sitios), angle = 0, hjust = 0, 
    vjust = -1, size = 3) + labs(x = "Estaciones de muestreo", y = "Riqueza") + 
    theme_bw() + scale_x_continuous(breaks = NULL)

Ab_plot <- ggplot(sit.riqab, aes(Sitios_num, Abundancia)) + geom_point(stat = "identity", 
    size = 2) + geom_step(stat = "identity", position = "identity") + geom_text(data = sit.riqab, 
    mapping = aes(x = Sitios_num, y = Abundancia, label = Sitios), angle = 0, 
    hjust = 0, vjust = -1, size = 3) + labs(x = "Estaciones de muestreo", y = "Abundancia") + 
    theme_bw() + scale_x_continuous(breaks = NULL)

plot_grid(Riq_plot, Ab_plot, labels = "AUTO", nrow = 1, align = "v")

Riqueza y composición taxonómica

Calculamos la riqueza por sitio y le añadimos la matriz de identidad para clasificar los sitios (o unidades de muestreo) por zonas y unidades de comparación:

sit_div <- cbind(df_id, Sitios_num, sit.ab, sit.riq)
sit_div
##      AreaInf Unidad Sitios Sitios_num Abundancia Riqueza
## A1   Directa      A     A1          1        143      32
## A2 Indirecta      A     A2          2        108      28
## A3   Directa      A     A3          3        135      37
## A4 Indirecta      A     A4          4        150      39
## B1   Directa      B     B1          5        657      42
## B2 Indirecta      B     B2          6        275      21
## B3   Directa      B     B3          7        404      35
## B4 Indirecta      B     B4          8        472      27
## C1   Directa      C     C1          9         43      14
## C2 Indirecta      C     C2         10        323      20
## C3   Directa      C     C3         11        421      26
## C4 Indirecta      C     C4         12        866      26
## D1   Directa      D     D1         13         98      22
## D2 Indirecta      D     D2         14        270      32
## D3   Directa      D     D3         15         76      17
## D4 Indirecta      D     D4         16        236      24
## E1   Directa      E     E1         17        439      35
## E2 Indirecta      E     E2         18        582      34
## E3   Directa      E     E3         19        568      37
## E4 Indirecta      E     E4         20        466      28
## G1   Directa      G     G1         21        192      22
## G2 Indirecta      G     G2         22        206      21
## G3   Directa      G     G3         23        147      22
## G4 Indirecta      G     G4         24        115      20

Calculamos la riqueza promedio y la desviación estándar por Área de influencia (Directa e Indirecta) y por Unidad de comparación (A, B, C,D,E y G).

riq_sum <- sit_div %>% group_by(AreaInf, Unidad) %>% summarise(Riq.prom = mean(Riqueza), 
    Riq.ds = sd(Riqueza))
riq_sum <- as.data.frame(riq_sum)
str(riq_sum)
## 'data.frame':    12 obs. of  4 variables:
##  $ AreaInf : Factor w/ 2 levels "Directa","Indirecta": 1 1 1 1 1 1 2 2 2 2 ...
##  $ Unidad  : Factor w/ 6 levels "A","B","C","D",..: 1 2 3 4 5 6 1 2 3 4 ...
##  $ Riq.prom: num  34.5 38.5 20 19.5 36 22 33.5 24 23 28 ...
##  $ Riq.ds  : num  3.54 4.95 8.49 3.54 1.41 ...

Graficamos la riqueza promedio y sus respectivas desviaciones por grupo:

pd <- position_dodge(0.2)

ggplot(riq_sum, aes(Unidad, Riq.prom, color = AreaInf)) + geom_errorbar(aes(ymin = Riq.prom - 
    Riq.ds, ymax = Riq.prom + Riq.ds), width = 0.2, position = pd) + geom_point(size = 3, 
    shape = 21, fill = "white", position = pd) + labs(x = "Unidades de muestreo", 
    y = "Riqueza (N° de especies registradas)") + scale_color_brewer(palette = "Paired") + 
    theme_bw() + theme(axis.text.x = element_text(angle = 60, hjust = 1)) + 
    labs(color = "Área de influencia")

Calculamos la diversidad de taxones por taxón superior, para ello transponemos la matriz que en principio contiene los sitios como filas y las especies como columnas y las colocamos en el sentido inverso.

df_sp <- as.spacodi(df)
df_sp <- as.data.frame(df_sp)

Añadimos a la matriz, la identidad taxonómica de las especies identificadas(Clase, Orden, Familia y Género)

Sitios_sp <- specnumber(df_sp)
Sitios_sp <- as.data.frame(Sitios_sp)
AbXsp <- df_sp %>% mutate(Abundancia = rowSums(.)) %>% select(tail(names(.), 
    1))
TaxaData <- cbind(df_spID, Sitios_sp, AbXsp)
TaxaData <- as.data.frame(TaxaData)
str(TaxaData)
## 'data.frame':    110 obs. of  7 variables:
##  $ Clase     : Factor w/ 2 levels "Delta","Kappa": 1 1 1 1 1 1 1 1 1 1 ...
##  $ Orden     : Factor w/ 8 levels "Alfa","Beta",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ Familia   : Factor w/ 18 levels "A","B","C","D",..: 1 1 1 1 1 1 1 2 2 2 ...
##  $ Genero    : Factor w/ 88 levels "Abra","Amaena",..: 15 32 56 65 29 36 52 70 2 4 ...
##  $ Especie   : Factor w/ 110 levels "Abra_alba","Abra_nitida",..: 18 37 68 82 34 43 60 87 3 5 ...
##  $ Sitios_sp : int  8 14 3 2 5 6 6 1 1 1 ...
##  $ Abundancia: Named num  22 68 3 2 8 16 572 1 1 1 ...
##   ..- attr(*, "names")= chr  "Abra_alba" "Abra_nitida" "Amaena_trilobata" "Ampharetidae" ...
headtail(TaxaData)
##                       Clase Orden Familia      Genero           Especie
## Abra_alba             Delta  Alfa       A  Cerianthus Cerianthus_lloydi
## Abra_nitida           Delta  Alfa       A Halicryptus    Halicryptus_sp
## Amaena_trilobata      Delta  Alfa       A  Onchnesoma        Onchnesoma
## Thracea_papyracea     Kappa Omega       R   Amphipoda         Amphipoda
## Thyasira_sp           Kappa Omega       R     Cumacea           Cumacea
## Trichobranchus_roseus Kappa Omega       R   Crustacea   Crustacea_indet
##                       Sitios_sp Abundancia
## Abra_alba                     8         22
## Abra_nitida                  14         68
## Amaena_trilobata              3          3
## Thracea_papyracea             1          2
## Thyasira_sp                  20        609
## Trichobranchus_roseus         3          3

Calculamos el número de especies por familia (unidad taxonómica más empleada)

Taxa_sum <- TaxaData %>% group_by(Clase, Orden, Familia) %>% count() %>% arrange(desc(n))
Taxa_sum
## # A tibble: 18 x 4
## # Groups:   Clase, Orden, Familia [18]
##    Clase Orden   Familia     n
##    <fct> <fct>   <fct>   <int>
##  1 Kappa Rho     Q          16
##  2 Kappa Gama    H          15
##  3 Kappa Rho     P          13
##  4 Delta Teta    F           8
##  5 Kappa Gama    I           8
##  6 Delta Alfa    A           7
##  7 Delta Alfa    B           6
##  8 Delta Beta    C           6
##  9 Delta Beta    D           6
## 10 Kappa Gama    G           6
## 11 Kappa Omega   R           5
## 12 Kappa Rho     O           5
## 13 Kappa Iota    N           4
## 14 Delta Teta    E           1
## 15 Kappa Epsilon J           1
## 16 Kappa Iota    K           1
## 17 Kappa Iota    L           1
## 18 Kappa Iota    M           1
orden_nivel <- as.factor(Taxa_sum$Familia)
orden_nivel
##  [1] Q H P F I A B C D G R O N E J K L M
## Levels: A B C D E F G H I J K L M N O P Q R

Graficamos las familias por el número de especies registradas.

ggplot(Taxa_sum, aes(factor(Familia, level = orden_nivel), n, group = NA, shape = Clase, 
    color = Orden)) + geom_step(stat = "identity", position = "identity", color = "Black") + 
    geom_point(stat = "identity", size = 3) + scale_color_brewer(palette = "Paired") + 
    labs(x = "Familia", y = "N° de especies") + theme_bw() + theme(axis.text.x = element_text(angle = 60, 
    hjust = 1))

Abundancia y Abundancia relativa

A continuación evaluamos cómo se distribuyen las abundancias y abundancias relativas entre sitios y taxas. Para ello empleamos los datos presentes en el data frame sit_div

str(sit_div)
## 'data.frame':    24 obs. of  6 variables:
##  $ AreaInf   : Factor w/ 2 levels "Directa","Indirecta": 1 2 1 2 1 2 1 2 1 2 ...
##  $ Unidad    : Factor w/ 6 levels "A","B","C","D",..: 1 1 1 1 2 2 2 2 3 3 ...
##  $ Sitios    : Factor w/ 24 levels "A1","A2","A3",..: 1 2 3 4 5 6 7 8 9 10 ...
##  $ Sitios_num: num  1 2 3 4 5 6 7 8 9 10 ...
##  $ Abundancia: Named num  143 108 135 150 657 275 404 472 43 323 ...
##   ..- attr(*, "names")= chr  "A1" "A2" "A3" "A4" ...
##  $ Riqueza   : int  32 28 37 39 42 21 35 27 14 20 ...
ab_sum <- sit_div %>% group_by(AreaInf, Unidad) %>% summarise(Ab.prom = mean(Abundancia), 
    Ab.ds = sd(Abundancia))
ab_sum <- as.data.frame(ab_sum)
str(ab_sum)
## 'data.frame':    12 obs. of  4 variables:
##  $ AreaInf: Factor w/ 2 levels "Directa","Indirecta": 1 1 1 1 1 1 2 2 2 2 ...
##  $ Unidad : Factor w/ 6 levels "A","B","C","D",..: 1 2 3 4 5 6 1 2 3 4 ...
##  $ Ab.prom: num  139 530 232 87 504 ...
##  $ Ab.ds  : num  5.66 178.9 267.29 15.56 91.22 ...

Graficamos la abundancia promedio por sitio y sus resepctivas desviaciones por grupo.

pd <- position_dodge(0.2)

ggplot(ab_sum, aes(Unidad, Ab.prom, color = AreaInf)) + geom_errorbar(aes(ymin = Ab.prom - 
    Ab.ds, ymax = Ab.prom + Ab.ds), width = 0.2, position = pd) + geom_point(size = 3, 
    shape = 21, fill = "white", position = pd) + labs(x = "Unidades de muestreo", 
    y = "Abundancia (N° de individuos)") + scale_color_brewer(palette = "Paired") + 
    theme_bw() + theme(axis.text.x = element_text(angle = 60, hjust = 1)) + 
    labs(color = "Área de influencia")

Para graficar la abundancia por familia empleamos el data frame TaxaData.

Taxa_sumAb <- TaxaData %>% group_by(Clase, Orden, Familia) %>% summarise(Abundancia = sum(Abundancia)) %>% 
    arrange(desc(Abundancia))
Taxa_sumAb
## # A tibble: 18 x 4
## # Groups:   Clase, Orden [8]
##    Clase Orden   Familia Abundancia
##    <fct> <fct>   <fct>        <dbl>
##  1 Kappa Gama    H             2863
##  2 Delta Beta    D              864
##  3 Kappa Rho     Q              705
##  4 Kappa Gama    I              704
##  5 Kappa Omega   R              699
##  6 Delta Alfa    A              691
##  7 Kappa Rho     P              198
##  8 Kappa Rho     O              136
##  9 Delta Teta    F              115
## 10 Kappa Gama    G               97
## 11 Kappa Epsilon J               88
## 12 Kappa Iota    L               75
## 13 Delta Alfa    B               59
## 14 Delta Beta    C               48
## 15 Kappa Iota    K               22
## 16 Delta Teta    E               17
## 17 Kappa Iota    N                8
## 18 Kappa Iota    M                3
orden_nivelAb <- as.factor(Taxa_sumAb$Familia)
orden_nivelAb
##  [1] H D Q I R A P O F G J L B C K E N M
## Levels: A B C D E F G H I J K L M N O P Q R

Graficamos las familias por la abundancia registrada.

ggplot(Taxa_sumAb, aes(factor(Familia, level = orden_nivelAb), Abundancia, group = NA, 
    shape = Clase, color = Orden)) + geom_step(stat = "identity", position = "identity", 
    color = "Black") + geom_point(stat = "identity", size = 3) + scale_color_brewer(palette = "Paired") + 
    labs(x = "Familia", y = "Abundancia") + theme_bw() + theme(axis.text.x = element_text(angle = 60, 
    hjust = 1))

Calculamos la abundancia relativa, calculando la suma total de abundancias y dividiendo el valor de cada fila por el total de la columna.

Taxa_sumAb <- as.data.frame(Taxa_sumAb)
col_sum <- colSums(select(Taxa_sumAb, "Abundancia"))
Taxa_sumAbRel <- Taxa_sumAb %>% mutate(AbRelativa = Abundancia) %>% mutate_each_(~./col_sum, 
    vars = c("AbRelativa")) %>% arrange(desc(AbRelativa))

orden_nivelAbRel <- as.factor(Taxa_sumAbRel$Familia)

Graficamos familias por abundancia relativa

ggplot(Taxa_sumAbRel, aes(factor(Familia, level = orden_nivelAbRel), AbRelativa, 
    group = NA, shape = Clase, color = Orden)) + geom_step(stat = "identity", 
    position = "identity", color = "Black") + geom_point(stat = "identity", 
    size = 3) + scale_color_brewer(palette = "Paired") + labs(x = "Familia", 
    y = "Abundancia Relativa") + scale_y_continuous(labels = scales::percent_format(accuracy = 1)) + 
    theme_bw() + theme(axis.text.x = element_text(angle = 60, hjust = 1))

Diversidad e índices de diversidad

Calculamos los principales índices de diversidad y los añadimos a la base de datos de diversidad por sitios sit_div.

N0 <- specnumber(df)  # Riqueza
H <- diversity(df)  # Índice de entropía de Shannon en base e
Hb2 <- diversity(df, base = 2)  # Índice de entropía de Shannon en base 2
N1 <- exp(H)  # Diversidad de Shannon (base e)
N1b2 <- 2^Hb2  # Diversidad de Shannon (base 2)
N2 <- diversity(df, "inv")  # Diversidad de simpson (número de especies dominantes)
J <- H/log(rowSums(df > 0))  # Equidad de Pielou
E10 <- N1/N0  # Equidad de Shannon
E20 <- N2/N0  # Equidad de Simpson
D <- diversity(df, index = "simpson")
sit_div <- data.frame(sit_div, H, D, Hb2, N1, N1b2, N2, E10, E20, J)

Se ha calculado una variedad de índices de diversidad para cada localidad, particularmente se analizan los índices de entropía de Shannon base e H, y el índice de Simpson D. Se recomienda emplear los número de Hill. Además se complementa la base de datos con la riqueza y abundancia para cada estación de monitoreo.

div_sum <- sit_div %>% group_by(AreaInf, Unidad) %>% summarise(Riq.prom = mean(Riqueza), 
    Riq.ds = sd(Riqueza), Ab.prom = mean(Abundancia), Ab.ds = sd(Abundancia), 
    H.prom = mean(H), H.ds = sd(H), D.prom = mean(D), D.ds = sd(D))
div_sum <- as.data.frame(div_sum)

Graficamos la distribución de los valores de los índices de diversidad de Shannon y Simpson por estación y zona de evaluación.

pd <- position_dodge(0.2)

H_sitios <- ggplot(div_sum, aes(Unidad, H.prom, color = AreaInf)) + geom_errorbar(aes(ymin = H.prom - 
    H.ds, ymax = H.prom + H.ds), width = 0.2, position = pd) + geom_point(size = 3, 
    shape = 21, fill = "white", position = pd) + labs(x = "Unidades de muestreo", 
    y = "Diversidad de Shannon (H')") + scale_color_brewer(palette = "Paired") + 
    theme_bw() + theme(axis.text.x = element_text(angle = 60, hjust = 1)) + 
    labs(color = "Área de influencia")


D_sitios <- ggplot(div_sum, aes(Unidad, D.prom, color = AreaInf)) + geom_errorbar(aes(ymin = D.prom - 
    D.ds, ymax = D.prom + D.ds), width = 0.2, position = pd) + geom_point(size = 3, 
    shape = 21, fill = "white", position = pd) + labs(x = "Unidades de muestreo", 
    y = "Diversidad de Simpson (1-D)") + scale_color_brewer(palette = "Paired") + 
    theme_bw() + theme(axis.text.x = element_text(angle = 60, hjust = 1)) + 
    labs(color = "Área de influencia")

plot_grid(H_sitios, D_sitios, labels = "AUTO", nrow = 1, align = "v")


Fernando Tapia - Especialista en Biodiversidad e Hidrobiología . 07 de Junio de 2019. Última actualización: 2019-07-05