getwd()
## [1] "C:/Users/Claudia Gomez/OneDrive - Universidad Nacional de Costa Rica/ecocuantitativa/claudia_gomez"
library(vegan)
## Loading required package: permute
## Loading required package: lattice
## This is vegan 2.6-4
library(ggplot2)
library(fdth)
## 
## Attaching package: 'fdth'
## The following objects are masked from 'package:stats':
## 
##     sd, var

#Funciones Basicas

data("varespec")
data("varechem")

summary(varespec)
##     Callvulg         Empenigr         Rhodtome         Vaccmyrt     
##  Min.   : 0.000   Min.   : 0.130   Min.   :0.0000   Min.   : 0.000  
##  1st Qu.: 0.000   1st Qu.: 1.833   1st Qu.:0.0000   1st Qu.: 0.000  
##  Median : 0.075   Median : 5.700   Median :0.0000   Median : 0.000  
##  Mean   : 1.878   Mean   : 6.333   Mean   :0.3496   Mean   : 2.113  
##  3rd Qu.: 1.095   3rd Qu.: 9.725   3rd Qu.:0.0000   3rd Qu.: 0.800  
##  Max.   :24.130   Max.   :16.000   Max.   :4.0000   Max.   :18.270  
##     Vaccviti         Pinusylv         Descflex         Betupube      
##  Min.   : 1.980   Min.   :0.0000   Min.   :0.0000   Min.   :0.00000  
##  1st Qu.: 6.673   1st Qu.:0.0300   1st Qu.:0.0000   1st Qu.:0.00000  
##  Median :11.250   Median :0.1000   Median :0.0000   Median :0.00000  
##  Mean   :11.460   Mean   :0.1713   Mean   :0.2333   Mean   :0.01208  
##  3rd Qu.:14.547   3rd Qu.:0.1525   3rd Qu.:0.0500   3rd Qu.:0.00000  
##  Max.   :25.000   Max.   :1.2000   Max.   :3.7000   Max.   :0.25000  
##     Vacculig         Diphcomp          Dicrsp           Dicrfusc     
##  Min.   :0.0000   Min.   :0.0000   Min.   : 0.0000   Min.   : 0.000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.: 0.0000   1st Qu.: 0.250  
##  Median :0.0000   Median :0.0000   Median : 0.0000   Median : 0.535  
##  Mean   :0.6342   Mean   :0.1350   Mean   : 1.6875   Mean   : 4.730  
##  3rd Qu.:0.2675   3rd Qu.:0.0175   3rd Qu.: 0.2625   3rd Qu.: 3.473  
##  Max.   :8.1000   Max.   :2.0700   Max.   :23.4300   Max.   :37.070  
##     Dicrpoly         Hylosple         Pleuschr         Polypili      
##  Min.   :0.0000   Min.   :0.0000   Min.   : 0.030   Min.   :0.00000  
##  1st Qu.:0.0000   1st Qu.:0.0000   1st Qu.: 1.335   1st Qu.:0.00000  
##  Median :0.0200   Median :0.0000   Median : 6.875   Median :0.00000  
##  Mean   :0.2525   Mean   :0.7517   Mean   :15.749   Mean   :0.02542  
##  3rd Qu.:0.2075   3rd Qu.:0.0000   3rd Qu.:22.367   3rd Qu.:0.02000  
##  Max.   :3.0000   Max.   :9.9700   Max.   :70.030   Max.   :0.25000  
##     Polyjuni         Polycomm          Pohlnuta         Ptilcili      
##  Min.   :0.0000   Min.   :0.00000   Min.   :0.0000   Min.   : 0.0000  
##  1st Qu.:0.0275   1st Qu.:0.00000   1st Qu.:0.0300   1st Qu.: 0.0000  
##  Median :0.1800   Median :0.00000   Median :0.0700   Median : 0.0300  
##  Mean   :0.5771   Mean   :0.02958   Mean   :0.1092   Mean   : 0.5837  
##  3rd Qu.:0.2500   3rd Qu.:0.00000   3rd Qu.:0.1900   3rd Qu.: 0.2275  
##  Max.   :6.9800   Max.   :0.25000   Max.   :0.3200   Max.   :10.0000  
##     Barbhatc         Cladarbu        Cladrang         Cladstel      
##  Min.   :0.0000   Min.   : 0.17   Min.   : 0.870   Min.   : 0.0000  
##  1st Qu.:0.0000   1st Qu.: 3.04   1st Qu.: 4.888   1st Qu.: 0.1075  
##  Median :0.0000   Median : 7.18   Median :10.220   Median : 3.0250  
##  Mean   :0.1329   Mean   :10.63   Mean   :16.196   Mean   :20.2796  
##  3rd Qu.:0.0000   3rd Qu.:16.16   3rd Qu.:23.878   3rd Qu.:29.1000  
##  Max.   :3.0000   Max.   :39.00   Max.   :59.000   Max.   :84.3000  
##     Cladunci         Cladcocc         Cladcorn         Cladgrac     
##  Min.   : 0.050   Min.   :0.0000   Min.   :0.0300   Min.   :0.0000  
##  1st Qu.: 0.250   1st Qu.:0.0275   1st Qu.:0.1275   1st Qu.:0.1650  
##  Median : 0.730   Median :0.1100   Median :0.2150   Median :0.2300  
##  Mean   : 2.345   Mean   :0.1163   Mean   :0.2592   Mean   :0.2142  
##  3rd Qu.: 2.417   3rd Qu.:0.1800   3rd Qu.:0.2500   3rd Qu.:0.2500  
##  Max.   :23.680   Max.   :0.2500   Max.   :1.4200   Max.   :0.5000  
##     Cladfimb        Cladcris         Cladchlo          Cladbotr      
##  Min.   :0.000   Min.   :0.0200   Min.   :0.00000   Min.   :0.00000  
##  1st Qu.:0.100   1st Qu.:0.0700   1st Qu.:0.00000   1st Qu.:0.00000  
##  Median :0.180   Median :0.1850   Median :0.01000   Median :0.00000  
##  Mean   :0.165   Mean   :0.3113   Mean   :0.04833   Mean   :0.01958  
##  3rd Qu.:0.250   3rd Qu.:0.2500   3rd Qu.:0.05000   3rd Qu.:0.02000  
##  Max.   :0.250   Max.   :1.7800   Max.   :0.25000   Max.   :0.25000  
##     Cladamau            Cladsp           Cetreric         Cetrisla      
##  Min.   :0.000000   Min.   :0.00000   Min.   :0.0000   Min.   :0.00000  
##  1st Qu.:0.000000   1st Qu.:0.00000   1st Qu.:0.0000   1st Qu.:0.00000  
##  Median :0.000000   Median :0.00000   Median :0.0500   Median :0.02000  
##  Mean   :0.005833   Mean   :0.02167   Mean   :0.1500   Mean   :0.08458  
##  3rd Qu.:0.000000   3rd Qu.:0.02000   3rd Qu.:0.1975   3rd Qu.:0.09000  
##  Max.   :0.080000   Max.   :0.25000   Max.   :0.7800   Max.   :0.67000  
##     Flavniva          Nepharct          Stersp           Peltapht      
##  Min.   : 0.0000   Min.   :0.0000   Min.   : 0.0000   Min.   :0.00000  
##  1st Qu.: 0.0000   1st Qu.:0.0000   1st Qu.: 0.0000   1st Qu.:0.00000  
##  Median : 0.0000   Median :0.0000   Median : 0.0650   Median :0.00000  
##  Mean   : 0.4938   Mean   :0.2192   Mean   : 0.7300   Mean   :0.03167  
##  3rd Qu.: 0.1275   3rd Qu.:0.0000   3rd Qu.: 0.6775   3rd Qu.:0.00500  
##  Max.   :10.0300   Max.   :4.8700   Max.   :10.2800   Max.   :0.33000  
##     Icmaeric           Cladcerv           Claddefo         Cladphyl      
##  Min.   :0.000000   Min.   :0.000000   Min.   :0.0000   Min.   :0.00000  
##  1st Qu.:0.000000   1st Qu.:0.000000   1st Qu.:0.0950   1st Qu.:0.00000  
##  Median :0.000000   Median :0.000000   Median :0.2500   Median :0.00000  
##  Mean   :0.009167   Mean   :0.004167   Mean   :0.4263   Mean   :0.03333  
##  3rd Qu.:0.000000   3rd Qu.:0.000000   3rd Qu.:0.4175   3rd Qu.:0.00000  
##  Max.   :0.100000   Max.   :0.050000   Max.   :1.9700   Max.   :0.25000
summary(varechem)
##        N               P               K               Ca        
##  Min.   :13.40   Min.   :22.70   Min.   : 43.6   Min.   : 188.5  
##  1st Qu.:18.82   1st Qu.:32.60   1st Qu.:127.2   1st Qu.: 425.7  
##  Median :22.05   Median :41.50   Median :166.6   Median : 518.5  
##  Mean   :22.38   Mean   :45.08   Mean   :162.9   Mean   : 569.7  
##  3rd Qu.:26.30   3rd Qu.:57.05   3rd Qu.:205.8   3rd Qu.: 739.2  
##  Max.   :33.10   Max.   :73.50   Max.   :313.8   Max.   :1169.7  
##        Mg               S               Al              Fe         
##  Min.   : 25.70   Min.   :14.90   Min.   : 12.1   Min.   :  2.300  
##  1st Qu.: 60.90   1st Qu.:29.43   1st Qu.: 38.2   1st Qu.:  5.575  
##  Median : 75.05   Median :36.25   Median :106.8   Median : 27.800  
##  Mean   : 87.46   Mean   :37.19   Mean   :142.5   Mean   : 49.612  
##  3rd Qu.:108.70   3rd Qu.:43.60   3rd Qu.:233.7   3rd Qu.: 85.150  
##  Max.   :209.10   Max.   :60.20   Max.   :435.1   Max.   :204.400  
##        Mn               Zn               Mo            Baresoil     
##  Min.   : 10.10   Min.   : 2.600   Min.   :0.0500   Min.   : 0.010  
##  1st Qu.: 26.70   1st Qu.: 5.375   1st Qu.:0.2750   1st Qu.: 7.975  
##  Median : 36.55   Median : 8.100   Median :0.3000   Median :21.250  
##  Mean   : 49.33   Mean   : 7.596   Mean   :0.3958   Mean   :22.949  
##  3rd Qu.: 59.00   3rd Qu.: 9.100   3rd Qu.:0.5000   3rd Qu.:30.750  
##  Max.   :132.00   Max.   :16.800   Max.   :1.1000   Max.   :56.900  
##     Humdepth           pH       
##  Min.   :1.000   Min.   :2.700  
##  1st Qu.:1.800   1st Qu.:2.800  
##  Median :2.200   Median :2.900  
##  Mean   :2.200   Mean   :2.933  
##  3rd Qu.:2.625   3rd Qu.:3.000  
##  Max.   :3.800   Max.   :3.600

Ejercicio 1. Explore las siguientes opciones en su computador. Utilice las bases de datos biológicas y ambientales. ¿Qué tipo de información entrega cada una de las bases de datos?

varespec[1:5,1:10] 
varespec
#Cambie los números para que observe la forma en que trabaja el entorno para la lectura datos

head(varespec)
nrow(varespec) #numero de filas 
## [1] 24
ncol(varespec) #numero de columna 
## [1] 44
dim(varespec) #dimension de la base
## [1] 24 44
colnames(varespec) #nombre de las columnaas
##  [1] "Callvulg" "Empenigr" "Rhodtome" "Vaccmyrt" "Vaccviti" "Pinusylv"
##  [7] "Descflex" "Betupube" "Vacculig" "Diphcomp" "Dicrsp"   "Dicrfusc"
## [13] "Dicrpoly" "Hylosple" "Pleuschr" "Polypili" "Polyjuni" "Polycomm"
## [19] "Pohlnuta" "Ptilcili" "Barbhatc" "Cladarbu" "Cladrang" "Cladstel"
## [25] "Cladunci" "Cladcocc" "Cladcorn" "Cladgrac" "Cladfimb" "Cladcris"
## [31] "Cladchlo" "Cladbotr" "Cladamau" "Cladsp"   "Cetreric" "Cetrisla"
## [37] "Flavniva" "Nepharct" "Stersp"   "Peltapht" "Icmaeric" "Cladcerv"
## [43] "Claddefo" "Cladphyl"
rownames(varespec) #nombre de las filas 
##  [1] "18" "15" "24" "27" "23" "19" "22" "16" "28" "13" "14" "20" "25" "7"  "5" 
## [16] "6"  "3"  "4"  "2"  "9"  "12" "10" "11" "21"
range(varespec)  #min y max 
## [1]  0.0 84.3

Ejercicio 2. Realice el mismo cálculo anterior pero para la matriz ambiental. Discutamos el resultado obtenido en este proceso. ¿Por qué el sistema le entrega este resultado?

Ahora, podemos construir un gráfico de barras para determinar la cantidad de casos (frecuencia) en las abundancias de los organismos. Nótese que hay muchísima presencia de 0, por lo cual las matrices biológicas son “una complicación” para técnicas estadísticas “tradicionales”.

head(varechem)
nrow(varechem) #numero de filas 
## [1] 24
ncol(varechem) #numero de columna 
## [1] 14
dim(varechem) #dimension de la base 
## [1] 24 14
colnames(varechem) #nombre de las columnaas
##  [1] "N"        "P"        "K"        "Ca"       "Mg"       "S"       
##  [7] "Al"       "Fe"       "Mn"       "Zn"       "Mo"       "Baresoil"
## [13] "Humdepth" "pH"
rownames(varechem) #nombre de las filas 
##  [1] "18" "15" "24" "27" "23" "19" "22" "16" "28" "13" "14" "20" "25" "7"  "5" 
## [16] "6"  "3"  "4"  "2"  "9"  "12" "10" "11" "21"
range(varechem) #min y max, me entrega un rango 
## [1]    0.01 1169.70
barplot(table(unlist(varespec)), xlab="Abundancia (clases)", ylab="Frecuencia", col=gray(5:0/5))

sum(varespec==0) #Cantidad de 0 en el dataset
## [1] 442
spe.pres <- apply(varespec > 0, 2, sum)
#Note que el número 2 corresponde a la suma por columna, esto es muy importante en la organización inicial de la base de datos!
sort(spe.pres) #Organiza de acuerdo a la abundancia
## Betupube Cladamau Cladcerv Hylosple Icmaeric Cladphyl Rhodtome Polycomm 
##        3        3        3        4        4        4        5        5 
## Barbhatc Nepharct Diphcomp Peltapht Descflex Polypili Cladbotr Vacculig 
##        5        5        6        6        8        8        8        9 
## Vaccmyrt   Dicrsp   Cladsp Flavniva Cladchlo Dicrpoly Cetrisla Callvulg 
##       10       10       10       10       12       13       13       15 
## Cetreric Ptilcili   Stersp Cladcocc Polyjuni Pohlnuta Pinusylv Cladstel 
##       16       17       17       19       20       20       21       22 
## Cladfimb Dicrfusc Cladgrac Claddefo Empenigr Vaccviti Pleuschr Cladarbu 
##       22       23       23       23       24       24       24       24 
## Cladrang Cladunci Cladcorn Cladcris 
##       24       24       24       24
spe.relf <- 100*spe.pres/nrow(varespec)
round(sort(spe.relf), 1)#El número 1 redondea a un dígito, intente cambiar la opción para que experimente las opciones
## Betupube Cladamau Cladcerv Hylosple Icmaeric Cladphyl Rhodtome Polycomm 
##     12.5     12.5     12.5     16.7     16.7     16.7     20.8     20.8 
## Barbhatc Nepharct Diphcomp Peltapht Descflex Polypili Cladbotr Vacculig 
##     20.8     20.8     25.0     25.0     33.3     33.3     33.3     37.5 
## Vaccmyrt   Dicrsp   Cladsp Flavniva Cladchlo Dicrpoly Cetrisla Callvulg 
##     41.7     41.7     41.7     41.7     50.0     54.2     54.2     62.5 
## Cetreric Ptilcili   Stersp Cladcocc Polyjuni Pohlnuta Pinusylv Cladstel 
##     66.7     70.8     70.8     79.2     83.3     83.3     87.5     91.7 
## Cladfimb Dicrfusc Cladgrac Claddefo Empenigr Vaccviti Pleuschr Cladarbu 
##     91.7     95.8     95.8     95.8    100.0    100.0    100.0    100.0 
## Cladrang Cladunci Cladcorn Cladcris 
##    100.0    100.0    100.0    100.0
par(mfrow=c(1,2))       # Divide the window horizontally

hist(spe.pres, main="Ocurrencia", right=FALSE, las=1, 
    xlab="Cantidad de ocurrencia", ylab="Abundancia", col="red")
hist(spe.relf, main="Frecuencia relativa de especies", right=FALSE, las=1,
    xlab="Frecuencia de ocurrencia(%)", ylab="Abundancia",col="blue")

Datos exploratorios matriz ambiental

summary(varechem)
##        N               P               K               Ca        
##  Min.   :13.40   Min.   :22.70   Min.   : 43.6   Min.   : 188.5  
##  1st Qu.:18.82   1st Qu.:32.60   1st Qu.:127.2   1st Qu.: 425.7  
##  Median :22.05   Median :41.50   Median :166.6   Median : 518.5  
##  Mean   :22.38   Mean   :45.08   Mean   :162.9   Mean   : 569.7  
##  3rd Qu.:26.30   3rd Qu.:57.05   3rd Qu.:205.8   3rd Qu.: 739.2  
##  Max.   :33.10   Max.   :73.50   Max.   :313.8   Max.   :1169.7  
##        Mg               S               Al              Fe         
##  Min.   : 25.70   Min.   :14.90   Min.   : 12.1   Min.   :  2.300  
##  1st Qu.: 60.90   1st Qu.:29.43   1st Qu.: 38.2   1st Qu.:  5.575  
##  Median : 75.05   Median :36.25   Median :106.8   Median : 27.800  
##  Mean   : 87.46   Mean   :37.19   Mean   :142.5   Mean   : 49.612  
##  3rd Qu.:108.70   3rd Qu.:43.60   3rd Qu.:233.7   3rd Qu.: 85.150  
##  Max.   :209.10   Max.   :60.20   Max.   :435.1   Max.   :204.400  
##        Mn               Zn               Mo            Baresoil     
##  Min.   : 10.10   Min.   : 2.600   Min.   :0.0500   Min.   : 0.010  
##  1st Qu.: 26.70   1st Qu.: 5.375   1st Qu.:0.2750   1st Qu.: 7.975  
##  Median : 36.55   Median : 8.100   Median :0.3000   Median :21.250  
##  Mean   : 49.33   Mean   : 7.596   Mean   :0.3958   Mean   :22.949  
##  3rd Qu.: 59.00   3rd Qu.: 9.100   3rd Qu.:0.5000   3rd Qu.:30.750  
##  Max.   :132.00   Max.   :16.800   Max.   :1.1000   Max.   :56.900  
##     Humdepth           pH       
##  Min.   :1.000   Min.   :2.700  
##  1st Qu.:1.800   1st Qu.:2.800  
##  Median :2.200   Median :2.900  
##  Mean   :2.200   Mean   :2.933  
##  3rd Qu.:2.625   3rd Qu.:3.000  
##  Max.   :3.800   Max.   :3.600
dist.Subs <- fdt(varechem$Ca,breaks="Sturges")
dist.Subs
##       Class limits f   rf rf(%) cf  cf(%)
##  [186.615,352.412) 4 0.17 16.67  4  16.67
##  [352.412,518.209) 8 0.33 33.33 12  50.00
##  [518.209,684.006) 3 0.12 12.50 15  62.50
##  [684.006,849.803) 7 0.29 29.17 22  91.67
##   [849.803,1015.6) 1 0.04  4.17 23  95.83
##    [1015.6,1181.4) 1 0.04  4.17 24 100.00
hist(varechem$Ca)

Tratamiento de los datos

base_datos <-read.csv("./bases_datos/DoubsSpe.csv", sep=",", header = TRUE, dec = ".")
base_datos
riqueza<-rowSums(base_datos>0)
shannon<-diversity(base_datos)
simpson<-diversity (base_datos, "inv")
pielou<-shannon/log(riqueza)

doub.diversidad<-data.frame(riqueza,shannon,simpson,pielou)

Ejercicio 1 Indique cuantas filas y variables están presentes en la matrizde datos de diversidad.

Ejercicio 2 En esta matriz aparece un dato NaN. Explique ¿por qué se obtiene este valor?. Hint!: tiene que ver con la función matemática que estamos utilizando!

Ejercicio 3 Utilice la función geom_point (size=3) o geom_point (size=15). Además, utilice la capa geom_text anterior. Analice como se construyen los gráficos con ggplot.

dim(doub.diversidad)
## [1] 30  4
#Respuesta 1: hay 30 filas y 4 columnas 
#Respuesta 2:  es porque pielou según la fórmula sería 0/log(1) y esta ecuacion no es posible 

#Respuesta 3:

doubs.spa <-read.csv("./bases_datos/DoubsSpa.csv", sep=",", header = TRUE, dec = ".")
ggplot(doubs.spa, aes(x=x,y=y)) + geom_text(label=row.names(doubs.spa)) + theme_classic() + geom_point(size=15)

ggplot(doubs.spa, aes(x=x,y=y)) + geom_text(label=row.names(doubs.spa)) + theme_classic() + geom_point(size=3)

Transformación de datos Existen muchos criterios para la transformación, en las matrices biológicas a este proceso se le denomina transformación, y muchas se pueden lograr con la función decostand:

#Raíz cuadrada

doubs.spe.cuad<-sqrt(base_datos)


#"Raíz cuarta

doubs.spe.cuarta<-sqrt(sqrt(base_datos))

#Log (x + 1)
doubs.spe.log<-decostand(base_datos,"log")

#Presencia/Ausencia

doubs.spe.pa<-decostand(base_datos,"pa")

#transformación de Hellinger

oubs.spe.hell<-decostand(base_datos,"total")
#Note el uso de total para lograr la transformación de Hellinger
#Utilice ?decostand para que revise su uso

doubs.env.std<-decostand(base_datos,"standardize")

par(mfrow=c(1,2)) #divide la pantalla gráfica en 1 filas y 2 columnas.

boxplot(base_datos$LOC,doubs.spe.cuad$LOC,doubs.spe.cuarta$LOC,doubs.spe.log$LOC,doubs.spe.pa$LOC,oubs.spe.hell$LOC, names=c("Sin transformar","Raíz2", "Raíz4","Log","Pres/Aus","Hellinger"), main="Transformaciones Biológicos LOC")