Glosario de R
Paquetes y funciones usados en el curso
Esta página reúne las funciones y paquetes cubiertos en las sesiones, no todas las que existen. Las insignias de sesión indican en cuál(es) sesiones apareció cada función. El índice de la derecha permite ir directamente a cada paquete.
Los nombres de los paquetes enlazan a su documentación oficial: cada uno tiene muchas más funciones y argumentos de los que cubrimos aquí.
Operadores y sintaxis
Elementos del lenguaje R que no requieren cargar ningún paquete.
| Elemento | Descripción | Sesiones |
|---|---|---|
<- |
Asignar: evalúa la expresión de la derecha y guarda el resultado en el objeto nombrado a la izquierda. | S1S2S3S4S5S6S7 |
|> |
Pipe nativo (R ≥ 4.1): pasa el resultado de la izquierda como primer argumento de la función de la derecha. Permite encadenar operaciones de arriba a abajo. Atajo en RStudio: Ctrl+Shift+M (Windows/Linux) o Cmd+Shift+M (Mac). | S3S4S5S6S7 |
%>% |
Pipe de magrittr: funciona igual que |> en la gran mayoría de los casos. Común en tutoriales y código anterior a 2021; proviene del paquete magrittr, incluido en tidyverse. |
S3 |
%in% |
Comprueba si cada elemento del vector de la izquierda aparece en el vector de la derecha. Devuelve un vector lógico (TRUE/FALSE). |
S3 |
paquete::funcion() |
Operador de espacio de nombres (::): llama a una función indicando explícitamente de qué paquete proviene, sin necesidad de haberlo cargado con library(). Útil para funciones que se usan una sola vez (como tinytex::install_tinytex()) o para dejar claro el origen de una función cuando hay conflictos. |
S5S6 |
if (cond) { } else { } |
Condicional básico: ejecuta el primer bloque cuando la condición es TRUE y el segundo cuando es FALSE. Solo evalúa un valor escalar, no un vector completo. |
S5 |
nombre <- function(arg) { } |
Define una función propia. El cuerpo entre llaves contiene el código que se ejecuta al llamarla. R devuelve automáticamente el último valor evaluado dentro del cuerpo. | S5 |
R base
Funciones disponibles en R sin necesidad de cargar ningún paquete.
| Función | Descripción | Sesiones |
|---|---|---|
| Estructuras de datos | ||
c(...) |
Crea un vector combinando los valores proporcionados. Todos deben ser del mismo tipo; si no, R los convierte al tipo más general. | S1 |
data.frame(...) |
Crea una tabla de datos: cada argumento con nombre se convierte en una columna. Todas las columnas deben tener la misma longitud. | S1S5 |
factor(x, levels) |
Convierte un vector en factor con un orden de niveles definido. Los factores son variables categóricas con categorías fijas y ordenables; el orden de levels afecta a gráficas y modelos. |
S3S5 |
| Paquetes | ||
install.packages("pkg") |
Instala un paquete desde CRAN en el disco. Solo se ejecuta una vez por computador; no va dentro de los scripts de análisis. | S1 |
library(pkg) |
Carga un paquete instalado en la sesión de trabajo. Va al inicio del script y se ejecuta cada vez que se inicia una sesión nueva. | S1 |
| Matemáticas y estadísticas | ||
sqrt(x) |
Calcula la raíz cuadrada de x. |
S1 |
round(x, digits = 0) |
Redondea x al número de decimales indicado en digits. |
S1S5 |
mean(x, na.rm = FALSE) |
Calcula la media aritmética. Con na.rm = TRUE ignora los valores NA antes de calcular. |
S3S4S5S6 |
sd(x, na.rm = FALSE) |
Calcula la desviación estándar. Con na.rm = TRUE ignora los NA. |
S3S5 |
sum(x, na.rm = FALSE) |
Suma los elementos del vector. Con na.rm = TRUE ignora los NA. |
S3 |
cor(x) |
Calcula la correlación entre dos vectores o la matriz de correlaciones de un data frame numérico. Combina bien con round() para obtener resultados legibles. |
S5 |
nrow(x) |
Devuelve el número de filas de un data frame o matriz. | S6 |
ifelse(cond, si_verdad, si_falso) |
Condicional vectorizado: evalúa la condición para cada elemento del vector y devuelve el valor correspondiente. Para más de dos categorías, usa case_when(). |
S5 |
| Simulación | ||
set.seed(n) |
Fija la semilla del generador de números aleatorios. Con la misma semilla, la simulación produce los mismos valores en cualquier computador, lo que la hace reproducible. | S5 |
rnorm(n, mean = 0, sd = 1) |
Genera n valores aleatorios de una distribución normal con la media y desviación estándar indicadas. |
S5 |
runif(n, min = 0, max = 1) |
Genera n valores de una distribución uniforme entre min y max. |
S5 |
rbinom(n, size, prob) |
Genera n valores de una distribución binomial con size ensayos y probabilidad de éxito prob. |
S5 |
sample(x, n, replace = FALSE) |
Extrae n elementos al azar del vector x. Con replace = TRUE permite repeticiones. |
S5 |
pmax(...) |
Devuelve el máximo elemento a elemento entre los vectores. Útil para imponer un techo: pmax(0, x) lleva todos los negativos a cero. |
S5 |
pmin(...) |
Devuelve el mínimo elemento a elemento entre los vectores. Útil para imponer un piso: pmin(21, x) lleva a 21 todos los valores que lo superen. |
S5 |
| Texto | ||
paste(..., sep = " ") |
Une fragmentos de texto separándolos con el carácter indicado en sep. |
S1 |
paste0(...) |
Une fragmentos de texto sin separador (equivale a paste(..., sep = "")). Útil para construir identificadores o etiquetas. |
S5 |
gsub(patrón, reemplazo, x) |
Reemplaza todas las ocurrencias del patrón en x. El patrón puede ser texto literal o una expresión regular. |
S3 |
tolower(x) |
Convierte todas las letras de la cadena de texto a minúsculas. Útil para estandarizar categorías con variaciones de mayúsculas. | S3 |
| Entorno y datos | ||
data() |
Sin argumentos, lista las bases de datos disponibles en los paquetes cargados. Con nombre (data("diamonds")), carga esa base de datos en el entorno. |
S1 |
View(x) |
Abre una vista tabular del objeto en una pestaña de RStudio. | S1 |
getwd() |
Devuelve la ruta del directorio de trabajo actual. Útil para verificar que el proyecto está correctamente configurado. | S4 |
head(x, n = 6) |
Muestra las primeras n filas del data frame (por defecto, 6). |
S4 |
names(x) |
Devuelve los nombres de las columnas de un data frame (o los nombres de un vector). | S4 |
print(x) |
Imprime el objeto en la consola. En general es implícito: escribir el nombre de un objeto ya lo imprime sin necesidad de llamar print(). |
S1 |
saveRDS(x, file) |
Guarda un objeto R en disco en formato .rds, conservando su tipo exacto (factores, listas, atributos). Solo funciona en R. |
S4 |
readRDS(file) |
Carga un objeto guardado previamente con saveRDS(). |
S4 |
| Citas bibliográficas | ||
citation(pkg = NULL) |
Devuelve la referencia bibliográfica de R (sin argumentos) o del paquete indicado. Citar R y los paquetes usados es una buena práctica en trabajos académicos. | S7 |
toBibtex(x) |
Convierte una referencia obtenida con citation() al formato BibTeX, listo para copiar al archivo .bib. |
S7 |
ggplot2
Paquete de visualización basado en la Grammar of Graphics. Se carga con library(ggplot2) en S1 y con library(tidyverse) a partir de S2.
| Función | Descripción | Sesiones |
|---|---|---|
| Lienzo y estéticas | ||
ggplot(data, mapping = aes()) |
Crea el lienzo base de la figura: define los datos y el mapeo inicial de variables a estéticas. No dibuja nada hasta añadir una capa geométrica con +. |
S1S2S3S5S6S7 |
aes(x, y, colour, fill, shape, ...) |
Mapea variables del data frame a estéticas visuales. Dentro de aes(): el valor varía según los datos y genera leyenda. Fuera de aes(): el valor es fijo e igual para todos los elementos. |
S1S2S3S5S6S7 |
| Geometrías · una variable | ||
geom_histogram(bins, fill, colour) |
Histograma: divide los valores de x en intervalos y cuenta cuántas observaciones caen en cada uno. Usa bins para el número de barras o binwidth para el ancho de cada una (no ambos a la vez). |
S2S3S5S6 |
geom_density(alpha) |
Curva de densidad suavizada. Versión continua del histograma; útil para comparar distribuciones entre grupos mapeando fill o colour a una variable categórica. |
S2 |
geom_bar(position) |
Barras de conteo por categoría: calcula automáticamente cuántas observaciones hay en cada nivel de x. position = "dodge" coloca las barras lado a lado; "stack" las apila. |
S2S3 |
| Geometrías · dos variables | ||
geom_point(alpha, size, colour) |
Diagrama de dispersión: un punto por fila del data frame. alpha controla la transparencia (0 invisible, 1 sólido) para manejar la sobreposición de puntos. |
S1S2S3S5 |
geom_jitter(width, alpha, size) |
Puntos con desplazamiento aleatorio pequeño en el eje x para evitar solapamiento. Combina bien con geom_violin() o geom_boxplot() para mostrar los datos individuales. |
S2S3 |
geom_boxplot(alpha) |
Diagrama de caja: muestra la mediana, los cuartiles y los valores extremos de y para cada nivel de x. |
S2 |
geom_violin(alpha, fill) |
Diagrama de violín: como el boxplot, pero muestra la forma completa de la distribución (útil para detectar bimodalidad o asimetría). Se combina bien con geom_jitter(). |
S2S3 |
geom_col(position) |
Barras a partir de valores ya calculados en el data frame. A diferencia de geom_bar(), no cuenta; la altura de cada barra es el valor de y. |
S3 |
geom_smooth(method, se) |
Línea de tendencia sobre los puntos. method = "lm" ajusta una recta; method = "loess" ajusta una curva suave. se = FALSE oculta el intervalo de confianza. |
S2S3 |
geom_line(colour, linewidth) |
Conecta los puntos en orden de x. Apropiado para series de tiempo o datos con un orden natural. |
S2 |
geom_tile() |
Mosaico de celdas coloreadas: dibuja un rectángulo por fila del data frame. Útil para visualizar densidades o matrices en dos dimensiones. | S1 |
geom_vline(xintercept, colour) |
Dibuja una línea vertical en la posición indicada por xintercept. Útil para marcar la media, un umbral u otro valor de referencia. |
S5 |
| Facetas | ||
facet_wrap(~var, scales, nrow) |
Divide la figura en un panel por cada valor único de var. scales = "free" permite que cada panel tenga su propia escala. |
S2S5 |
facet_grid(filas ~ cols) |
Organiza los paneles en una cuadrícula con una variable en las filas y otra en las columnas. La sintaxis es var_filas ~ var_columnas. |
S2 |
| Etiquetas | ||
labs(title, subtitle, x, y, colour, fill, caption) |
Define los textos de la figura: título, subtítulo, ejes, leyendas y nota al pie. Usa NULL para eliminar un elemento (por ejemplo, x = NULL quita el título del eje x). |
S1S2S3S5S6S7 |
| Escalas de color y forma | ||
scale_colour_viridis_d(option) |
Paleta Viridis para la estética colour con variable categórica (sufijo _d de discrete). Opciones: "viridis", "magma", "plasma", "inferno", "cividis". |
S1S2 |
scale_colour_viridis_c(option) |
Paleta Viridis para la estética colour con variable continua (sufijo _c). |
S1 |
scale_fill_viridis_d(option) |
Paleta Viridis para la estética fill con variable categórica. |
S2S3 |
scale_fill_viridis_c(option) |
Paleta Viridis para la estética fill con variable continua. |
S1 |
scale_fill_viridis_b(option) |
Paleta Viridis para la estética fill con variable continua agrupada en intervalos (sufijo _b de binned). |
S1 |
scale_colour_brewer(palette) |
Paleta ColorBrewer para la estética colour. Ejemplos: "Set2", "Dark2", "Paired". |
S2 |
scale_fill_brewer(palette) |
Paleta ColorBrewer para la estética fill. |
S2 |
scale_colour_manual(values) |
Paleta de colores definida a mano para la estética colour. values es un vector de colores (nombres o códigos HEX), uno por categoría. |
S1S2S3 |
scale_fill_manual(values) |
Paleta de colores definida a mano para la estética fill. |
S3 |
scale_shape_discrete(name) |
Escala de formas para la estética shape con variable categórica. Permite personalizar el título de la leyenda con name. |
S2 |
scale_x_log10() |
Aplica escala logarítmica en base 10 al eje x. Útil cuando los datos tienen una distribución muy sesgada o un rango muy amplio. |
S2 |
xlim(min, max) |
Fija los límites del eje x. Las observaciones fuera del rango se eliminan del cálculo de las geometrías. |
S3 |
| Temas | ||
theme(...) |
Personaliza elementos visuales individuales: posición de la leyenda, tamaño de fuentes, líneas de cuadrícula, fondo, etc. Se suma a un tema base como theme_minimal(). |
S1S2S3S5 |
theme_minimal() |
Tema limpio sin fondo gris. Es el tema más usado en el curso. | S1S2S3S5S6S7 |
theme_classic() |
Tema con ejes pero sin cuadrícula. Estilo clásico de artículo científico. | S2 |
theme_bw() |
Tema con fondo blanco y cuadrícula. | S2 |
theme_linedraw() |
Tema con bordes de línea negra, similar a theme_bw() pero con líneas más marcadas. |
S1S2 |
theme_dark() |
Tema con fondo oscuro. | S2 |
theme_void() |
Tema sin ejes, cuadrícula ni fondo. Útil para mapas o diagramas sin marco. | S2 |
element_blank() |
Dentro de theme(), elimina por completo un elemento visual. Por ejemplo, panel.grid.minor = element_blank() quita las líneas de cuadrícula menores. |
S2S3 |
element_text(size, face, colour, hjust) |
Dentro de theme(), controla el estilo de un elemento de texto: tamaño, negrita/cursiva, color y alineación horizontal. |
S2S3 |
element_line(colour, linewidth) |
Dentro de theme(), controla el estilo de líneas (cuadrícula, ejes). |
S2 |
element_rect(fill, colour) |
Dentro de theme(), controla el estilo de rectángulos (fondo del panel, de la leyenda). |
S2 |
| Guardar figuras | ||
ggsave(file, plot, width, height, units, dpi) |
Guarda la última figura generada (o la especificada en plot). El formato se determina por la extensión del archivo: .png, .pdf, .svg, etc. Para publicación impresa usa dpi = 300. |
S2 |
dplyr
Paquete de manipulación de datos. Parte de tidyverse; se carga con library(tidyverse).
| Función | Descripción | Sesiones |
|---|---|---|
| Explorar | ||
glimpse(x) |
Vista compacta del data frame: muestra el número de filas y columnas, el tipo de cada columna y los primeros valores. Equivale a str() de base R pero con formato más legible. |
S2S3S4S5 |
count(datos, var, sort = FALSE) |
Cuenta el número de observaciones por cada valor único de var. Con sort = TRUE ordena de mayor a menor. Es un atajo de group_by() |> summarise(n = n()). |
S3 |
| Seleccionar y renombrar columnas | ||
select(datos, col1, col2, ...) |
Elige columnas por nombre. Con -col excluye esa columna. Admite los ayudantes starts_with(), ends_with() y contains(). |
S3S4 |
rename(datos, nuevo = actual) |
Cambia el nombre de columnas. La sintaxis es siempre nombre_nuevo = nombre_actual. |
S3 |
rename_with(datos, .fn, .cols) |
Aplica una función (.fn) a los nombres de las columnas indicadas en .cols. Útil para estandarizar nombres en bloque: por ejemplo, convertirlos todos a minúsculas o reemplazar espacios. |
S3 |
starts_with("prefijo") |
Ayudante de selección: dentro de select(), elige todas las columnas cuyos nombres empiezan con el prefijo indicado. |
S3S4 |
ends_with("sufijo") |
Ayudante de selección: dentro de select(), elige todas las columnas cuyos nombres terminan con el sufijo indicado. |
S3 |
contains("cadena") |
Ayudante de selección: dentro de select(), elige todas las columnas cuyos nombres contienen la cadena indicada en cualquier posición. |
S3 |
| Filtrar filas | ||
filter(datos, condición) |
Retiene las filas que cumplen la condición. Varias condiciones separadas por , equivalen a AND (todas se deben cumplir); | equivale a OR (basta una). |
S3S4S5S6 |
| Crear y modificar columnas | ||
mutate(datos, col = expresión) |
Crea una columna nueva o modifica una existente. Pueden crearse varias en una sola llamada. El data frame original no cambia a menos que se reasigne con <-. |
S3S4S5 |
case_when(cond ~ val, ..., TRUE ~ val) |
Dentro de mutate(), recodifica valores evaluando condiciones en orden: asigna el valor de la primera condición verdadera. TRUE ~ al final actúa como caso por defecto y captura todo lo que no coincidió con las condiciones anteriores. |
S3S5 |
| Resumir y agrupar | ||
summarise(datos, col = fn(var)) |
Colapsa el data frame en un resumen: una fila por grupo (o una sola fila si no hay agrupamiento). Funciones habituales: mean(), sd(), n(), sum(). |
S3S4S5S7 |
group_by(datos, var1, var2) |
Agrupa el data frame para que las operaciones siguientes (mutate(), summarise()) operen dentro de cada grupo por separado. No cambia los datos visibles, solo añade información de agrupamiento. |
S3S4S5S7 |
ungroup(datos) |
Elimina el agrupamiento activo. Conviene añadirlo al final de cualquier pipeline que use group_by() cuando se quiere seguir usando el objeto sin agrupamiento. |
S3 |
n() |
Dentro de summarise() o mutate(), devuelve el número de filas del grupo actual (o del data frame completo si no hay agrupamiento). |
S3S5S7 |
readr
Paquete para importar y exportar archivos de texto plano (CSV, TSV…). Parte de tidyverse.
| Función | Descripción | Sesiones |
|---|---|---|
read_csv(file, skip, na) |
Importa un CSV con coma como separador y punto como decimal (formato internacional). skip omite las primeras n filas; na define los valores que se tratarán como NA. |
S4 |
read_csv2(file, skip, na) |
Importa un CSV con punto y coma como separador y coma como decimal: el formato que genera Excel configurado en español. Mismos argumentos que read_csv(). |
S4 |
write_csv(x, file) |
Exporta un data frame a CSV con coma como separador. Útil para compartir con otros programas o personas. | S4 |
write_csv2(x, file) |
Exporta un data frame a CSV con punto y coma como separador y coma como decimal (formato latinoamericano). | S4 |
readxl
Paquete para importar archivos Excel (.xlsx, .xls). No forma parte del tidyverse básico; se instala y carga por separado con library(readxl).
| Función | Descripción | Sesiones |
|---|---|---|
read_excel(path, sheet, skip, na, range) |
Importa una hoja de un archivo Excel. Por defecto carga la primera hoja. Argumentos clave: sheet (nombre o número de hoja), skip (filas a omitir al inicio), na (valores vacíos), range (rango de celdas). |
S3S4 |
excel_sheets(path) |
Lista los nombres de todas las hojas del archivo Excel. Úsala antes de read_excel() para saber qué hojas existen y cómo se llaman. |
S4 |
tidyr
Paquete para reorganizar y transformar datos. Parte de tidyverse.
| Función | Descripción | Sesiones |
|---|---|---|
drop_na(datos, ...) |
Elimina las filas que contienen al menos un valor NA. Sin argumentos adicionales, revisa todas las columnas; con nombres de columnas, solo las indicadas. |
S2S3 |
pivot_longer(datos, cols, names_to, values_to) |
Transforma de formato ancho a formato largo: convierte varias columnas en filas. cols indica qué columnas pivotar; names_to y values_to son los nombres de las dos nuevas columnas resultantes. |
S5 |
stringr
Paquete para manipulación de cadenas de texto. Parte de tidyverse.
| Función | Descripción | Sesiones |
|---|---|---|
str_pad(string, width, side, pad) |
Rellena una cadena de texto hasta alcanzar la anchura indicada en width. Por defecto rellena por la izquierda con espacios; con pad = "0" rellena con ceros. Útil para construir identificadores con formato fijo como "ID_001". |
S5 |
knitr
Paquete de generación de documentos. Se carga con library(knitr) y es el motor que Quarto usa internamente para ejecutar los bloques de código.
| Función | Descripción | Sesiones |
|---|---|---|
kable(x, digits, col.names) |
Convierte un data frame en una tabla con formato para documentos HTML, PDF o Word. Solución rápida para tablas sencillas; para tablas más elaboradas usa el paquete gt. | S7 |
include_graphics(path) |
Incluye una imagen externa (PNG, JPG, SVG…) en un documento Quarto. Admite las mismas opciones de bloque que las figuras generadas con código (fig-cap, fig-align, out-width…) y permite referencias cruzadas con @fig-xxx. Preferible a la sintaxis Markdown ![]() cuando se necesita etiquetar la figura. |
S8 |
gt
Paquete para crear tablas de publicación con control detallado del formato.
| Función | Descripción | Sesiones |
|---|---|---|
gt(data) |
Crea una tabla gt a partir de un data frame. Las funciones de formato se añaden con el pipe |>, igual que en ggplot2 con +. |
S7 |
tab_header(title, subtitle) |
Añade un título y un subtítulo encima de la tabla. | S7 |
cols_label(...) |
Define las etiquetas visibles de las columnas. Sintaxis: nombre_columna = "Etiqueta visible". |
S7 |
fmt_number(columns, decimals) |
Formatea columnas numéricas: controla el número de decimales y los separadores de miles. | S7 |
tab_spanner(label, columns) |
Agrupa varias columnas bajo un encabezado común. label es el texto del encabezado; columns es el vector de columnas agrupadas. |
S7 |
tab_source_note(source_note) |
Añade una nota de fuente al pie de la tabla. Útil para citar el origen de los datos. | S7 |
tab_footnote(footnote, locations) |
Añade una nota al pie vinculada a una celda, fila, columna o encabezado específico. locations indica dónde aparece el marcador de la nota. |
S7 |
cells_column_labels(columns) |
Dentro de tab_footnote() u otras funciones de locations, apunta al encabezado de una o varias columnas. |
S7 |
faux
Paquete para simular datos con estructura de correlaciones definida entre variables.
| Función | Descripción | Sesiones |
|---|---|---|
rnorm_multi(n, mu, sd, r, varnames) |
Simula n observaciones de varias variables numéricas con las medias (mu), desviaciones estándar (sd) y correlaciones (r) indicadas. varnames es el vector de nombres para las columnas resultantes. |
S5 |
patchwork
Paquete para combinar múltiples gráficas de ggplot2 en una sola figura compuesta.
| Función | Descripción | Sesiones |
|---|---|---|
p1 + p2 |
Coloca dos gráficas lado a lado. El operador + es la forma más directa de combinar objetos ggplot2; para apilarlos verticalmente se usa /. |
S8 |
plot_annotation(tag_levels) |
Añade etiquetas de panel a la composición. tag_levels = "a" genera (a), (b), (c)…; "1" genera (1), (2), (3)…; "A" genera mayúsculas; "i" genera romanos. |
S8 |
tinytex
Paquete para instalar TinyTeX, una distribución mínima de LaTeX necesaria para generar documentos PDF con Quarto.
| Función | Descripción | Sesiones |
|---|---|---|
tinytex::install_tinytex() |
Instala TinyTeX en el sistema. Se ejecuta una sola vez. Después, cambiar format: pdf en el YAML de un documento Quarto genera un PDF sin configuración adicional. |
S6 |
```