Apuntes de R

Por Roberto Jiménez

Geospatial & GIS Analyst

🧰 Comandos básicos

Entorno de trabajo

Obtener información sobre una función:

help('función')

Seleccionar directorio de trabajo:

setwd('ruta')

Obtener directorio de trabajo:

getwd()

Obtener ruta de instalación de R:

.libPaths()

Mostrar lista de archivos del directorio de trabajo:

list.files()

Funciones estadísticas

R permite hacer toda clase de operaciones estadísticas con la información que hayamos guardado como objeto mediante el uso de funciones. A continuación tenéis resumidas algunas de las más básicas con las que trabajar:

Sumar todos los valores que contenga un objeto:

sum(objeto)

Obtener el valor máximo del objeto:

max(objeto)

Obtener el valor mínimo del objeto:

min(objeto)

Calcular la media de los valores del objeto:

mean(objeto)

Calcular la mediana de los valores del objeto:

median(objeto)

Calcular la desviación típica de los valores del objeto:

sd(objeto)

Generar un resumen estadístico del objeto:

summary(objeto)

Redondear el valor o valores de un objeto. Por defecto redondea al entero superior a partir del 0.51 :

round(objeto)


Gestión de objetos

Las siguientes instrucciones sirven para operar a nivel básico con los objetos en R: cómo crearlos, borrarlos u obtener información de ellos.

Crear un objeto guardando bajo un nombre todo lo que vaya después del signo ‘=’ , desde una función a una tabla, un procedimiento, un resultado, shapefiles, etc. :

nombre_objeto = 

Obtener un listado de los objetos creados:

ls()

Borrar un objeto:

rm(objeto)

Borrar todos los objetos de la sesión:

rm(list=ls())

Liberar memoria del garbage collector:

gc()

Crear un rango, devolviendo en este caso una lista con todos los valores entre el 1 y el 10. Admite números negativos y el intervalo es siempre 1:

1:10

Crear un vector. Los vectores son colecciones de datos del mismo tipo, en este caso números enteros:

c(5, 7, 8)

Mostrar el tipo de valor del objeto. Puede ser entero (integer) o decimal (float):

str(objeto)

Manejo de tablas

Funciones y argumentos básicos para abrir archivos que contengan tablas, visualizarlas, editarlas y combinarlas.

Abrir tabla dentro del directorio de trabajo en archivo .txt cuyos valores se separan por puntos y mostrando la cabecera:

read.table('nombre.txt', header = TRUE, sep ='.')

Abrir tabla dentro del directorio de trabajo en archivo .csv cuyos valores se separan por espacios y sin mostrar la cabecera:

read.csv('nombre.csv', header = FALSE, sep = ',')

Argumento de las funciones read. y write. que indica el símbolo con el que se separan los valores en la tabla que vamos a abrir o guardar:

sep = ''
sep = '.'
sep = ','
sep = '/'

Argumento de las funciones read. y write. para indicar el caracter usado en los decimales de la tabla que vamos a abrir o guardar:

dec = ','
dec = '.'

Guardar la tabla abierta en un objeto llamado tabla1:

tabla1 = read.csv(.....

Visualizar la tabla guardada en el objeto tabla1:

tabla1

Obtener solo las 5 primeras filas de tabla1:

head(tabla1, 5)

Obtener solo las 24 últimas filas de tabla1:

tail(tabla1, 24)

Crear o sobrescribir una tabla .txt en el directorio de trabajo con los valores del objeto tabla1, separándolos con espacios y mostrando nombres de filas:

write.table(tabla1, 'nombre.txt', row.names = TRUE, sep = '')

Crear o sobrescribir una tabla .csv en el directorio de trabajo con los valores del objeto tabla1 separándolos con comas:

write.csv(tabla1, 'nombre.csv', sep = ',')

Seleccionar columnas por su nombre:

subset(tabla1, select = c(columna1,columna2))

Seleccionar filas que contengan un valor específico en una columna:

subset(tabla1, columna1 == 'Albacete')

Seleccionar un valor indicando su posición en la tabla. Dejar vacío para seleccionar filas o columnas enteras. Pueden usarse rangos para seleccionar trozos específicos:

tabla1[nºfila,nºcolumna]

Seleccionar una columna de tabla1 indicando su nombre:

tabla1$nombrecolumna

Guardar columnas en objetos:

col1 = tabla1$nombrecolumna1
col2 = tabla1$nombrecolumna2

Combinar columnas guardadas en objetos en una nueva tabla:

cbind(col1,col2) 

Combinar tablas completas. Deben compartir nombres de columna para que encajen:

rbind(tabla1,tabla2)

Renombrar la columna de la posición señalada:

colnames(tabla1)[nºcolumna] = c(‘nombre’)

Obtener una lista con los valores de la columna indicada ordenados de menor a mayor (por defecto):

sort(tabla1$nombrecolumna)

Aplicar una función a todas las filas (sustituir margin por 1) o a todas las columnas (sustituir margin por 2):

apply(tabla1, margin, función)

📊 Crear gráficos

Puntos

La función plot() sirve para generar un gráfico de puntos indicando valores a partir de columnas para una única variable:

plot(tabla$nombrecolumna)

A esta función se le puede añadir los siguientes argumentos para modificar su apariencia.

Argumento de la función plot() para cambiar el símbolo usado para mostrar los puntos. Sustituir n por algún número:

pch = n

Argumento de la función plot() en la que n indica el tamaño de los puntos:

cex = n 

Argumento de plot() que funciona igual que col, solo que cambia el fondo de algunos símbolos:

bg = 'blue'

Líneas

Función para generar un gráfico de líneas especificando el argumento type como »l»:

plot(tabla$nombrecolumna, type = ''l'')

A la función plot() se le puede añadir los siguientes argumentos para modificar su apariencia.

Argumento para cambiar el tipo de línea:

lty = n

Argumento para cambiar el grosor de la línea:

lwd = n

Barras

Función para generar un histograma o gráfico de barras para una columna de una tabla:

hist(tabla$columna)

Número de cortes o barras que tendrá el histograma:

breaks = n

Argumento de la función hist() para establecer el color del borde de las barras. Funciona con nombres (en inglés), números o códigos RGB:

border = 'red'
border = n
border = #DBD361

Dispersión

Función para generar un gráfico de dispersión a partir de dos variables distintas:

plot(tabla$nombrecolumnaX, tabla$nombrecolumnaY)

Crear la recta de regresión del gráfico de dispersión:

abline(lm(tabla$columna~tabla$columna))

Dar formato

En este apartado dejo una recopilación de argumentos que podéis usar para cambiar el aspecto de los gráficos anteriores.

Argumentos de la función plot() para establecer límites en los ejes del gráfico. n y z serían sustituidos por los valores límite.

xlim = c(n, z)
ylim = c(n, z)

Argumento de la función plot() para establecer el color de los puntos, las líneas o las barras. Funciona con nombres (en inglés), números o códigos RGB

col = 'red'
col = n
col = #DBD361

Argumentos de plot() para añadir título al gráfico y nombres a los ejes:

main = 'título'
xlab = 'texto'
ylab = 'texto'

Función para añadir series de datos adicionales a un gráfico creado con plot() . Puede cambiarse su apariencia usando sus mismos argumentos (según sea línea, punto o barra):

points(tabla$nombrecolumna)
lines(tabla$nombrecolumna)

Función para agregar leyenda al gráfico. La posición se indica con términos ingleses como »topleft» (arriba a a izquierda) y se usa un vector para indicar las series de datos que aparecerán representadas:

legend( "posición" , legend = c("Serie 1", ''Serie 2''))

Argumentos de la función legend() para cambiar el color del texto y de los puntos de la leyenda:

text.col =
pt.bg =

🌐 Librerías geoespaciales

Importar librerías

Cargar la librería spatial:

library(sp)

Cargar la librería maptools:

library(maptools)

Cargar la librería raster para obtener funciones de tratamiento ráster:

library(raster)

Cargar la librería RColorBrewer:

library(RColorBrewer)

Cargar la librería gridExtra:

library(gridExtra)

Cargar la librería ggplot2 para diseñar layouts cartográficos de forma avanzada:

library(ggplot2)

Cargar la librería gstat que permite hacer análisis como kriging:

library(gstat)

Cargar la librería rgdal o data abstraction library:

library(rgdal)