Coding Club Workshop 1 - R Basics
Learning how to import and explore data, and make graphs about Edinburgh’s biodiversity
Written by Paula Juliana Virguez Gomez 12/03/2020 Universidad Nacional de Colombia
edidiv.csv <-read.csv("/cloud/project/edidiv.csv")
Verificacion de que los datos se importaron sin errores Hacer click en el panel superior derecho para verificar las primeras lineas
head(edidiv.csv)
tail(edidiv.csv)
str() es un comando que muestra la estructura de sus datos.
str(edidiv.csv)
'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 se desee acceder solo a una columna de un marco de datos, agregue el nombre de la variable al nombre del objeto con un signo de dólar $. Esta sintaxis permite ver, modificar y / o reasignar esta variable.
Muestra solo las primeras filas de esta columna
head(edidiv.csv$taxonGroup)
[1] Bird Bird Bird Bird Bird Bird
11 Levels: Beetle Bird Butterfly Dragonfly ... Mollusc
Dice que tipo de variable se esta lidiando: es el personaje pero ahora se quiere que sea un factor
class(edidiv.csv$taxonGroup)
[1] "factor"
edidiv.csv$taxonGroup <- as.factor(edidiv.csv$taxonGroup)
as.factor() convierte cualquier valor que se coloque dentro en un factor
class(edidiv.csv$taxonGroup)
[1] "factor"
dim(edidiv.csv)
[1] 25684 5
summary(edidiv.csv)
organisationName
Biological Records Centre :6744
RSPB :5809
Butterfly Conservation :3000
Scottish Wildlife Trust :2070
Conchological Society of Great Britain & Ireland:1998
The Wildlife Information Centre :1860
(Other) :4203
gridReference year taxonName
NT2673 : 2741 Min. :2000 Maniola jurtina : 1710
NT2773 : 2031 1st Qu.:2006 Aphantopus hyperantus: 1468
NT2873 : 1247 Median :2009 Turdus merula : 1112
NT2570 : 1001 Mean :2009 Lycaena phlaeas : 972
NT27 : 888 3rd Qu.:2011 Aglais urticae : 959
NT2871 : 767 Max. :2016 Aglais io : 720
(Other):17009 (Other) :18743
taxonGroup
Butterfly :9670
Bird :7366
Flowering.Plants:2625
Mollusc :2226
Hymenopteran :1391
Mammal : 960
(Other) :1446
Da un resumen de esa variable particular en su conjunto de datos
summary(edidiv.csv$taxonGroup)
Beetle Bird Butterfly
426 7366 9670
Dragonfly Flowering.Plants Fungus
421 2625 334
Hymenopteran Lichen Liverwort
1391 140 125
Mammal Mollusc
960 2226
Dividir edidiv en varios objetos, cada uno con filas de un solo grupo taxonomico
Beetle <- filter(edidiv.csv, taxonGroup == "Beetle")
Bird <- filter(edidiv.csv, taxonGroup == "Bird")
Flowering.Plants <- filter(edidiv.csv, taxonGroup == "Flowering.Plants")
Butterfly <- filter(edidiv.csv, taxonGroup == "Butterfly")
Dragonfly <- filter(edidiv.csv, taxonGroup == "Dragonfly")
Fungus <- filter(edidiv.csv, taxonGroup == "Fungus")
Hymenopteran <- filter(edidiv.csv, taxonGroup == "Hymenopteran")
Lichen <- filter(edidiv.csv, taxonGroup == "Lichen")
Liverwort <- filter(edidiv.csv, taxonGroup == "Liverwort")
Mammal <- filter(edidiv.csv, taxonGroup == "Mammal")
Mollusc <- filter(edidiv.csv, taxonGroup == "Mollusc")
Para calcular el numero de especies diferentes en cada grupo se tienen las funciones unique() que identifica diferentes especies y length() que las cuenta
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))
Combinar los valores de un vector c()
biovid <- c(a,b,c,d,e,f,g,h,i,j,k)
names(biovid) <- c("Beetle",
"Bird",
"Butterfly",
"Dragonfly",
"Flowering.Plants",
"Fungus",
"Hymenopteran",
"Lichen",
"Liverwort",
"Mammal",
"Mollusc")
barplot(biovid)
Funcion help() sirve para ver que argumentos se necesitan agregar
help("barplot")
help("par")
barplot(biovid, col = heat.colors(12), log = "y")
barplot(biovid, col = gray.colors(20), log = "xy")
Pruebas
barplot(biovid, border = "red")
Abrir png () y cerrar dev.off() el dispositivo de trazado
barplot(biovid, xlab = "Taxa", ylab = "Number of species", ylim = c(0,600), cex.names = 1, cex.axis = 1, cex.lab=1.5)
Crear 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 <-factor(taxa)
Combinar todos los valores para el número de especies en un objeto llamado riqueza
richness <-c(a,b,c,d,e,f,g,h,i,j,k)
Crear el marco de datos a partir de los dos vectores
biodata<-data.frame(taxa_f,richness)
Guardar archivo
write.csv(biodata,file = "biodata.csv")
Guardar un diagrama de barras usando el marco de datos
png("barplot2.png", width = 1600, height = 600)
barplot(biodata$richness,names.arg = c("Beetle","Bird","Butterfly","Dragonfly","Flowering.Plants","Fungus","Hymenopteran","Lichen","Liverwort","Mammal","Mollusc"),
xlab = "Taxa", ylab = "Number of species",ylim = c(0,600))