Paquetes y graficado en R

Análisis de datos con R

Diego Nieto Lugilde

Máster Universitario en Gestión Ambiental y Biodiversidad. Universidad de Córdoba (España)

  • Tema 1: Introducción a R y programación
    • La estructura de R
    • Funciones, objetos y programación básica
    • Entorno (sesión de R) y directorio de trabajo
    • Trabajar con archivos (scripts y datos)
  • Tema 2:
    • Instalación de paquetes
    • CRAN
    • GitHub
    • Graficado
  • Tema 3:
    • Estadística descriptiva
    • Contraste de hipótesis
    • Paramétricos vs No paramétricos

Paquetes en R

¿Qué son los paquetes en R?

Conjuntos de funciones para un objetivo concreto

¿Donde se encuentran esos paquetes?

Se encuentran recopilados en un repositorio llamado CRAN (Comprehensive R Archive Network)

¿Cómo instalo paquetes de CRAN?

install.packages("openxlsx")
Installing package into 'C:/Users/Diego/AppData/Local/R/win-library/4.3'
(as 'lib' is unspecified)
package 'openxlsx' successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\Diego\AppData\Local\Temp\RtmpIHDJpQ\downloaded_packages

¿Cómo uso las funciones de una librería?

Tienes dos opciones, dependiendo de si…

  • Vas usar sus funciones de forma continuada
  • Sólo quieres usar una función de forma puntual
# Uso intensivo de sus funciones
library(openxlsx)
read.xlsx()
write.xlsx()

# Uso puntual de una función
openxlsx::read.xlsx()

¿Puedo encontrar paquetes en algún otro sitio?

Si. Puedes encontrar paquetes sin organizar en internet. Algunos sitios frecuentes son GitHub, GitLab, o similares.

¿Cómo puedo instalar paquetes de GitHub?

install.packages("devtools")
Installing package into 'C:/Users/Diego/AppData/Local/R/win-library/4.3'
(as 'lib' is unspecified)
package 'devtools' successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\Diego\AppData\Local\Temp\RtmpIHDJpQ\downloaded_packages
library(devtools)
Warning: package 'devtools' was built under R version 4.3.3
Loading required package: usethis
Warning: package 'usethis' was built under R version 4.3.3
install_github("colearendt/xlsx")
Using GitHub PAT from the git credential store.
Skipping install of 'xlsx' from a github remote, the SHA1 (4ed1d012) has not changed since last install.
  Use `force = TRUE` to force installation
## o
devtools::install_github("colearendt/xlsx")
Using GitHub PAT from the git credential store.
Skipping install of 'xlsx' from a github remote, the SHA1 (4ed1d012) has not changed since last install.
  Use `force = TRUE` to force installation

Graficado

Generación de gráficos nuevos

plot() es una función genérica que funciona con muchos objetos diferentes

# plot(x, y)
plot(5, 1)

También con funciones specíficas para gráficos concretos…

Histogramas

x <- rnorm(10, 5, 3)

hist(x)

Gráficas de barras

x <- rnorm(10, 5, 3)
names(x) <- paste0("tr_", 1:10)

barplot(x)

Gráficas de barras apiladas o paralelas

x <- matrix(rnorm(30, 5, 3), nrow = 3, ncol = 10)
colnames(x) <- paste0("tr_", 1:10)
rownames(x) <- c("high", "med", "low")

barplot(x, legend = TRUE)

Boxplots

x <- rnorm(30, 5, 3)
y <- rep(c("high", "med", "low"), 10)
dat <- data.frame(size = x, group = y)

boxplot(size ~ group, dat)

Puedo pasarle múltiples valores

x <- 1:10
y <- 10:1

plot(x, y)

Puedo pasarle múltiples valores

x <- 1:10
y <- 10:1

plot(x, y, main = "A plot", xlab = "Temperature",
    ylab = "Pirates")

Puedo cambiar la conexión entre puntos…

x <- 1:10
y <- 10:1

par(mfrow = c(2, 3))
plot(x, y)
plot(x, y, type = "l")
plot(x, y, type = "b")
plot(x, y, type = "h")
plot(x, y, type = "o")
plot(x, y, type = "s")

… pero cuidado con el orden de los datos

x <- sample(1:10, 10)
y <- sample(1:10, 10)

par(mfrow = c(2, 3))
plot(x, y)
plot(x, y, type = "l")
plot(x, y, type = "b")
plot(x, y, type = "h")
plot(x, y, type = "o")
plot(x, y, type = "s")

Puedo cambiar el tipo de puntos

x <- 1:10

par(mfrow = c(3, 1))
plot(x, rep(1, 10))
plot(x, rep(1, 10), pch = 2)
plot(x, rep(1, 10), pch = 1:10)

Puedo cambiar el tamaño de puntos

x <- 1:10
y <- 1:10

par(mfrow = c(3, 1))
plot(x, y)
plot(x, y, cex = 2)
plot(x, y, 
     cex = seq(1, 3, 
               length.out = 10))

Puedo cambiar los colores

  • Usando el nombre
  • Usando funciones para generar colores
x <- rep(1:10, 10)
y <- rep(1:10, each = 10)

par(mfrow = c(2, 2))
plot(x, y, pch = 15)
plot(x, y, pch = 15,
     col = "dark green")
plot(x, y, pch = 15,
     col = "#352575")
plot(x, y, pch = 15,
     col = rgb(0.8,0.1,0.2))

Muchas más opciones en la función par()

70 opciones diferentes para controlar los gráficos!

?par

Añadiendo información a gráficos existentes

  • points(x, y) añade puntos a gráficos (opciones similares a plot())

  • segments(x0, y0, x1, y1) añade líneas, desde un punto a otro

  • polygon(x, y) añade polígonos

Guardando gráficos en el disco duro

x <- rep(1:10, 10)
y <- rep(1:10, each = 10)

pdf("figures/Figure_1.pdf") 

plot(x, y, pch = 15, cex = 2, col = rgb(0.8, 0.1, 0.2))

dev.off()
png 
  2 

Algunos ejemplos de figuras

¿Como visualizo cuando tengo grandes cantidades de datos?

x <- rnorm(20000)
y <- rnorm(20000)

plot(x, y)

¿Como visualizo cuando tengo grandes cantidades de datos?

install.packages("hexbin") 
Installing package into 'C:/Users/Diego/AppData/Local/R/win-library/4.3'
(as 'lib' is unspecified)
library(hexbin)
Warning: package 'hexbin' was built under R version 4.3.3
hbin <- hexbin(x, y, xbins = 40)

plot(hbin)

package 'hexbin' successfully unpacked and MD5 sums checked

The downloaded binary packages are in
    C:\Users\Diego\AppData\Local\Temp\RtmpIHDJpQ\downloaded_packages

Vamos a practicar

  • Ejercicios de clase

Ejercicios de casa (Homeworks)

  • En la web de la asignatura (enlace en Moodle)
  • Entregar antes de la siguiente clase