#install.packages("dplyr")
library(dplyr)
## 
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
#Tenga en cuenta que hay comillas al instalar un paquete, pero no al cargarlo
#y recuerde que los hashtags le permiten agregar notas útiles a su código.
setwd("D:/mis documentos/ingenieria civil/semestre 10/Electiva 2/Taller_1_del_club_de codificacion_Conceptos_basicos_de_R")
edidiv <- read.csv("D:/mis documentos/ingenieria civil/semestre 10/Electiva 2/Taller_1_del_club_de codificacion_Conceptos_basicos_de_R/CC-RBasics-master/edidiv.csv")
#Esta es la ruta del archivo según el lugar donde guardé los datos, su ruta de archivo será diferente
head(edidiv) #Muestra las primeras filas
##                      organisationName gridReference year         taxonName
## 1 Joint Nature Conservation Committee      NT265775 2000    Sterna hirundo
## 2 Joint Nature Conservation Committee      NT235775 2000    Sterna hirundo
## 3 Joint Nature Conservation Committee      NT235775 2000 Sterna paradisaea
## 4       British Trust for Ornithology          NT27 2000 Branta canadensis
## 5       British Trust for Ornithology          NT27 2000  Branta leucopsis
## 6     The Wildlife Information Centre         NT27S 2001     Turdus merula
##   taxonGroup
## 1       Bird
## 2       Bird
## 3       Bird
## 4       Bird
## 5       Bird
## 6       Bird
tail(edidiv) #Muestra las últimas filas
##                            organisationName gridReference year
## 25679                    The Mammal Society      NT278745 2016
## 25680                    The Mammal Society      NT277724 2016
## 25681                    The Mammal Society      NT266728 2016
## 25682                    The Mammal Society      NT270728 2016
## 25683                    The Mammal Society      NT257762 2016
## 25684 People's Trust for Endangered Species        NT2372 2016
##                   taxonName taxonGroup
## 25679  Sciurus carolinensis     Mammal
## 25680   Capreolus capreolus     Mammal
## 25681  Sciurus carolinensis     Mammal
## 25682 Oryctolagus cuniculus     Mammal
## 25683         Vulpes vulpes     Mammal
## 25684   Erinaceus europaeus     Mammal
str(edidiv) #Te dice si las variables son continuas, enteras, categóricas o caracteres
## 'data.frame':    25684 obs. of  5 variables:
##  $ organisationName: chr  "Joint Nature Conservation Committee" "Joint Nature Conservation Committee" "Joint Nature Conservation Committee" "British Trust for Ornithology" ...
##  $ gridReference   : chr  "NT265775" "NT235775" "NT235775" "NT27" ...
##  $ year            : int  2000 2000 2000 2000 2000 2001 2001 2001 2001 2001 ...
##  $ taxonName       : chr  "Sterna hirundo" "Sterna hirundo" "Sterna paradisaea" "Branta canadensis" ...
##  $ taxonGroup      : chr  "Bird" "Bird" "Bird" "Bird" ...
head(edidiv$taxonGroup) #Muestra solo las primeras filas de esta columna
## [1] "Bird" "Bird" "Bird" "Bird" "Bird" "Bird"
class(edidiv$taxonGroup) #Te dice con qué tipo de variable estamos tratando es el carácter ahora pero queremos que sea un factor
## [1] "character"
edidiv$taxonGroup <- as.factor(edidiv$taxonGroup) #¿Qué estamos haciendo aquí ?!
# Mas exploracion
dim(edidiv) #Muestra el número de filas y columnas
## [1] 25684     5
summary(edidiv) #Le da un resumen de los datos
##  organisationName   gridReference           year       taxonName        
##  Length:25684       Length:25684       Min.   :2000   Length:25684      
##  Class :character   Class :character   1st Qu.:2006   Class :character  
##  Mode  :character   Mode  :character   Median :2009   Mode  :character  
##                                        Mean   :2009                     
##                                        3rd Qu.:2011                     
##                                        Max.   :2016                     
##                                                                         
##             taxonGroup  
##  Butterfly       :9670  
##  Bird            :7366  
##  Flowering.Plants:2625  
##  Mollusc         :2226  
##  Hymenopteran    :1391  
##  Mammal          : 960  
##  (Other)         :1446
summary(edidiv$taxonGroup) #Le brinda un resumen de esa variable (columna) en particular en su conjunto de datos
##           Beetle             Bird        Butterfly        Dragonfly 
##              426             7366             9670              421 
## Flowering.Plants           Fungus     Hymenopteran           Lichen 
##             2625              334             1391              140 
##        Liverwort           Mammal          Mollusc 
##              125              960             2226
Beetle <- filter(edidiv, taxonGroup == "Beetle") #El primer argumento de la función es el marco de datos, el segundo argumento es la condición por la que desea filtrar. Debido a que solo queremos los escarabajos aquí, decimos la variable taxonGroup DEBE SER EXACTAMENTE (==) Beetle elimine todo lo demás del conjunto de datos. (R distingue entre mayúsculas y minúsculas, por lo que es importante tener cuidado con la ortografía."Beetle" o "Beetles" no habrían funcionado aquí).
Bird <- filter(edidiv, taxonGroup == "Bird") # Hacemos lo mismo con las aves. Es muy similar al filtrado en Excel si está acostumbrado.
# Puede crear los objetos para los taxones restantes. Si necesita recordar los nombres y la ortografía, escriba resumen (edidiv $ taxonGroup)
Butterfly <- filter(edidiv, taxonGroup == "Butterfly")
Dragonfly <- filter(edidiv, taxonGroup == "Dragonfly")
Flowering.Plants <- filter(edidiv, taxonGroup == "Flowering.Plants")
Fungus <- filter(edidiv, taxonGroup == "Fungus")
Hymenopteran <- filter(edidiv, taxonGroup == "Hymenopteran")
Lichen <- filter(edidiv, taxonGroup == "Lichen")
Liverwort <- filter(edidiv, taxonGroup == "Liverwort")
Mammal <- filter(edidiv, taxonGroup == "Mammal")
Mollusc <- filter(edidiv, taxonGroup == "Mollusc")
a <- length(unique(Beetle$taxonName))
b <- length(unique(Bird$taxonName))
c <- length(unique(Butterfly$taxonName))
d <- length(unique(Dragonfly$taxonName))
e <- length(unique(Flowering.Plants$taxonName))
f <- length(unique(Fungus$taxonName))
g <- length(unique(Hymenopteran$taxonName))
h <- length(unique(Lichen$taxonName))
i <- length(unique(Liverwort$taxonName))
j <- length(unique(Mammal$taxonName))
k <- length(unique(Mollusc$taxonName))
# Puedes elegir los nombres que quieras para tus objetos, aquí utilicé a, b, c, d ... en aras de la brevedad.
biodiv <-c (a,b,c,d,e,f,g,h,i,j,k) #Estamos encadenando todos los valores; preste atención a los nombres de los objetos que ha calculado y su orden
names(biodiv) <- c("Beetle","Bird","Butterfly","Dragonfly","Flowering.Plants","Fungus","Hymenopteran","Lichen","Liverwort","Mammal","Mollusc")
barplot(biodiv)

help(barplot) #Para obtener ayuda con la función barplot ()
## starting httpd help server ... done
help(par) # Para obtener ayuda con el trazado en general
png("barplot.png", width=1600, height=600)
barplot(biodiv, xlab="Taxa", ylab="Number of species", ylim=c(0,600), cex.names=0.56, cex.axis=1.5,cex.lab=1.5)
# dev.off()
# El código cex aumenta el tamaño de fuente cuando es mayor que uno (y lo disminuye cuando es menor que uno).
#Creando un objeto llamado "taxa" que contiene todos los nombres de taxa
taxa <- c("Beetle","Bird","Butterfly","Dragonfly","Flowering.Plants","Fungus","Hymenopteran","Lichen","Liverwort","Mammal","Mollusc")
#Convertir este objeto en un factor, es decir, una variable categórica
taxa_f <- as.factor(taxa)
#Combinando todos los valores para el número de especies en un objeto llamado riqueza
riqueza <- c(1,2,3,4,5,6,7,8,9,10,11)
#Creando el marco de datos a partir de los dos vectores
biodata <- data.frame(taxa_f,riqueza)
#Guardando el archivo
write.csv(biodata, file="biodata.csv")
png("barplot2.png", width=1600, height=600)
barplot(biodata$riqueza, names.arg=c("Beetle","Bird","Butterfly","Dragonfly","Flowering.Plants","Fungus","Hymenopteran","Lichen","Liverwort","Mammal","Mollusc"), xlab="especies", ylab="Numero de especies", ylim=c(0,600))
# dev.off()