¿Qué es R?
R es un lenguaje de programación (Derivado del lenguaje S),así como tambien es el nombre del software que usa este lenguaje para la computación estadística.
Comenzando a escribir
Esta es una de las tareas encargadas para el curso de Geomática básica, el objetivo es tener una introducción a R y aprender algunas de sus funciones para el análisis de datos ;Este documento ha sido realizado por Angie Alejandra Juyo Buitrago
Paquetes en R
Los paquetes en R nos proporcionan funciones adicionales y pueden instalarse de la siguiente manera
#install.packages()
Una vez instalado ,cuando necesitemos emplear sus funciones, debemos cargarlo:
#library(packages-name)
En este caso utilizaremos el paquete dplyr
#install.packages("dplyr")
#library(dplyr)
Directorio de trabajo
Es la carpeta en nuestro equipo donde se encuentran los archivos con los que trabajaremos en R
Para conocer donde está nuestro directorio de trabajo emplearemos la funcion
getwd()
[1] "C:/Users/lmontanap/Desktop"
Para cambiar el directorio de trabajo, usamos la funci?n setwd()
setwd("C:/Users/lmontanap/Desktop/GB-2")
The working directory was changed to C:/Users/lmontanap/Desktop/GB-2 inside a notebook chunk. The working directory will be reset when the chunk is finished running. Use the knitr root.dir option in the setup chunk to change the working directory for notebook chunks.
Anáisis de datos (Registros NBN Gateaway 2000-2016) en R
Importar y verificar datos Podemos importar nuestros datos en RStudio , dando click en el botón “Import Dataset”.También podemos usar el comando read.csv()con la ruta de acceso al documento que se desee importar
read.csv("C:/Users/lmontanap/Desktop/GB-2/edidiv.csv")
¿Cómo saber si se han cometido errores en los codigos?
Se recomienda ejecutar el código y verificar la salida en la consola,para tener una vista de todos los datos que se han importado.Aunque ,existen comandos que nos permiten tener una vista rápida
head(edidiv) # Muestra las primeras filas de toda la tabla que fue importada
tail(edidiv) # Muestra las ultimas filas
Una vez importados podemos usar el comando str(object.name) para mostrar la estructura de los datos , es decir,nos indica que tipo de variables son
str(edidiv)
'data.frame': 25684 obs. of 5 variables:
$ organisationName: Factor w/ 28 levels "BATS & The Millennium Link",..: 14 14 14 8 8 28 28 28 28 28 ...
$ gridReference : Factor w/ 1938 levels "NT200701","NT200712",..: 1314 569 569 1412 1412 1671 1671 1671 1671 1671 ...
$ year : int 2000 2000 2000 2000 2000 2001 2001 2001 2001 2001 ...
$ taxonName : Factor w/ 1275 levels "Acarospora fuscata",..: 1126 1126 1127 192 193 1202 365 977 472 947 ...
$ taxonGroup : Factor w/ 11 levels "Beetle","Bird",..: 2 2 2 2 2 2 2 2 2 2 ...
Cuando deseemos acceder solo a una columna ,debemos agregar el nombre del objeto (El archivo que importamos) unido a la variable mediante el simbolo $
Vimos como el comando str() nos muestra la estructura de nuestros datos , si queremos conocer el tipo de variable de una columna en específico usaremos :
class(edidiv$taxonGroup)
[1] "factor"
Como nuestra variable es de carácter, se debe convertir a una variable de factor (categorica) mediante el siguiente comando
edidiv$taxonGroup <- as.factor(edidiv$taxonGroup)
class(edidiv$taxonGroup)
[1] "factor"
Existen otras instrucciones que tambien pueden ser útiles,por ejemplo si queremos saber el número de filas o columnas usaremos dim()
dim(edidiv)
[1] 25684 5
El comando summary ()nos permite ver un resumen de los datos importados
summary(edidiv)
organisationName gridReference
Biological Records Centre :6744 NT2673 : 2741
RSPB :5809 NT2773 : 2031
Butterfly Conservation :3000 NT2873 : 1247
Scottish Wildlife Trust :2070 NT2570 : 1001
Conchological Society of Great Britain & Ireland:1998 NT27 : 888
The Wildlife Information Centre :1860 NT2871 : 767
(Other) :4203 (Other):17009
year taxonName taxonGroup
Min. :2000 Maniola jurtina : 1710 Butterfly :9670
1st Qu.:2006 Aphantopus hyperantus: 1468 Bird :7366
Median :2009 Turdus merula : 1112 Flowering.Plants:2625
Mean :2009 Lycaena phlaeas : 972 Mollusc :2226
3rd Qu.:2011 Aglais urticae : 959 Hymenopteran :1391
Max. :2016 Aglais io : 720 Mammal : 960
(Other) :18743 (Other) :1446
Summary (-$-) muestra el resumen de una variable en específico
summary(edidiv$taxonGroup)
Beetle Bird Butterfly Dragonfly
426 7366 9670 421
Flowering.Plants Fungus Hymenopteran Lichen
2625 334 1391 140
Liverwort Mammal Mollusc
125 960 2226
Calcular la riqueza de especie Para saber cuantas especies tenemos de cada grupo taxonómico,debemos dividir edidiv (Nuestros datos) en varios objetos,es decir,cada uno con filas para cierto grupo
Beetle <- filter(edidiv, taxonGroup == "Beetle")
Bird <- filter(edidiv, taxonGroup == "Bird")
Butterfly <- filter(edidiv, taxonGroup == "Butterfly")
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")
Una vez hayamos creado los objetos para cada taxón ,podemos calcular el número de especies diferentes para cada grupo
a <- length(unique(Beetle$taxonName))
b <- length(unique(Bird$taxonName))
c <- length(unique(Butterfly$taxonName))
d <- length(unique(Flowering.Plants$taxonName))
e <- length(unique(Fungus$taxonName))
f <- length(unique(Hymenopteran$taxonName))
g <- length(unique(Lichen$taxonName))
h <- length(unique(Liverwort$taxonName))
i <- length(unique(Mammal$taxonName))
j <- length(unique(Mollusc$taxonName))
Crear un vector y trazarlo
Una vez tenemos la riqueza de especies por cada taxón ,podemos combinar estos valores en un vector con la función c()
biodiv <- c(a,b,c,d,e,f,g,h,i,j,i)
names(biodiv) <- c("Beetle", "Bird", "Butterfly", "Dragonfly", "Flowering.Plants", "Fungus", "Hymenopteran", "Lichen", "Liverwort", "Mammal", "Mollusc")
Ahora,podemos visualizar la riqueza de especies con la función barplot()
barplot(biodiv)
Vemos un gráfico al ejectutar el código,pero ,aún falta arreglar algunos detalles (Agregarle nombres a los ejes,Modificar el rango de los ejes,agragar color,entre otros)
Para conocer cuales comandos o funciones emplear utilizaremos la función help()
help("barplot")
barplot(biodiv, xlab="Taxón", ylab="Número de especies",space = c(0.25,0.25,0.25,0.25,0.3,0.25,0.25,0.25,0.25,0.25) ,ylim=c(0,600), cex.names= 0.53, cex.axis=0.6, cex.lab=0.9, col = c("powderblue","lightblue","lightskyblue","lightsteelblue","powderblue","skyblue","grey","cadetblue","deepskyblue","steelblue","lightcyan"), main="Riqueza de especies")
longer object length is not a multiple of shorter object lengthlonger object length is not a multiple of shorter object length
Crear un marco de datos y trazarlo
Los marcos de datos son tablas de valores : tienen una esctructura bidimensional : Filas y columnas
Usaremos la función data.frame() para crearlo,pero primero crearemos una columna que contenga los nombres de todos los taxones
taxa <- c("Beetle", "Bird", "Butterfly","Dragonfly","Flowering.Plants", "Fungus", "Hymenopteran", "Lichen", "Liverwort", "Mammal", "Mollusc")
Para convertir el objeto en un factor
taxa_f <-factor(taxa)
Combinando todos los valores en el n?mero de especies en la columna llamada “richness”
richness <- c(a,b,c,d,e,f,g,h,i,j,i)
Para crear un marco de datos a partir de dos vectores
biodata <- data.frame(taxa_f, richness)
Para guardar el marco de datos en nuestro directorio de trabajo
write.csv(biodata, file ="biodata.csv")
Si queremos crear un diagrama de barras usando el marco de datos, debemos cambiar el código, pues los marcos de datos pueden contener múltiples variables.Así que debemos decirle a R exactamente cuál queremos que trace.(Como vimos antes, podemos especificar columnas de un marco de datos usando $)
barplot(biodata$richness, names.arg=c("Beetle","bird","Butterfly","Dragonfly","Flowering.plants","fungus","hymenopteran","lichen" , "Liverwort","Mammal","Mollusc"),xlab="Taxón", ylab="Numero de especies", ylim=c(0,600))