Documentación de R
Referencia concisa y basada en ejemplos de R. Lee el concepto, mira el código y practícalo en un recorrido de Coddy.
Primeros pasos
- ¿Qué es R?Qué es el lenguaje de programación R, de dónde viene, para qué se usa y cómo se compara con Python - con una primera muestra ejecutable de código R.
- Instalar RCómo descargar R desde CRAN e instalarlo en Windows, macOS o Linux, además de RStudio - el IDE que casi todo el mundo usa para escribir R.
- Ejecutar un script de RTodas las formas de ejecutar código R: la consola interactiva, Rscript desde la línea de comandos, source() desde dentro de R y los comandos Run y Source de RStudio.
- Sintaxis de REl núcleo de la sintaxis de R: asignación con <-, expresiones e impresión automática, llamadas a funciones con argumentos con nombre y la regla de que todo es un vector.
- ComentariosCómo funcionan los comentarios en R: el símbolo #, por qué R no tiene un verdadero comentario multilínea, el atajo de RStudio para comentar bloques y qué dicen los buenos comentarios.
Variables y datos
- VariablesCómo crear variables en R con la flecha <-, cuándo se requiere = en su lugar, las reglas de nombres y cómo listar y eliminar variables con ls() y rm().
- Tipos de datosLos tipos de datos atómicos de R - double, integer, character, logical - además de en qué difieren typeof() y class(), y cómo funcionan la conversión y la coerción.
- NúmerosTrabajar con números en R: numeric vs integer, la familia de redondeo, sqrt y log, el operador módulo %% y los valores especiales Inf y NaN.
- CadenasTodo lo que necesitas para trabajar con texto en R: crear cadenas, unirlas con paste y paste0, formatear con sprintf y buscar con gsub, grepl y strsplit.
- Entrada y salidaCómo funciona la salida en R - impresión automática, print() frente a cat(), message() - y cómo leer la entrada del usuario con readline() y readLines().
Flujo de control
- OperadoresTodos los operadores que necesitas en R - aritméticos incluyendo %% y %/%, comparaciones vectorizadas, la distinción entre & y && y %in% para comprobar pertenencia.
- If / ElseLógica condicional en R - sintaxis de if/else if/else, la trampa de las llaves que rompe scripts, ifelse() vectorizado para vectores enteros y switch() para elecciones múltiples.
- Bucles forCómo funcionan los bucles for en R - iterar sobre vectores e índices, recoger resultados sin caer en la trampa del vector que crece, next y break, y cuándo una llamada vectorizada gana a un bucle.
- Bucles whileCómo funcionan los bucles while en R - iteración con la condición por delante, repeat con break como el do-while de R, next y los hábitos que te libran de los bucles infinitos.
Estructuras de datos
- VectoresLos vectores son la unidad fundamental de R - incluso un solo número lo es. Cómo crearlos con c(), indexarlos (¡desde 1!), filtrarlos con máscaras lógicas y hacer cálculos sobre vectores enteros de una vez.
- ListasLas listas son el contenedor para todo de R: tipos mezclados, estructuras anidadas, data frames enteros. La habilidad clave es saber cuándo [ devuelve una lista más pequeña y cuándo [[ devuelve el elemento en sí.
- MatricesCómo construir matrices con matrix(), cbind() y rbind(), indexar filas y columnas y mantener el * elemento a elemento separado de la verdadera multiplicación matricial %*%.
- FactoresLos factores son la forma en que R almacena los datos categóricos: códigos enteros vestidos con etiquetas de texto. Cómo crearlos, ordenarlos, fijar el nivel de referencia - y esquivar la trampa de convertir un factor a numérico.
- Data framesEl data frame es la hoja de cálculo de R: columnas con nombre de igual longitud, cada una con su propio tipo. Cómo construir uno, hacerte una idea con str() y head(), y llegar a columnas, filas y celdas.
- Valores ausentes (NA)NA significa "desconocido" - y se propaga por cada cálculo que toca. Cómo detectarlo con is.na(), saltarlo con na.rm = TRUE y eliminarlo o sustituirlo deliberadamente.
Funciones y paquetes
- FuncionesCómo crear una función en R - la sintaxis function(x) { }, los valores de retorno, los argumentos con valor por defecto y con nombre, los puntos ... , las funciones anónimas y cómo funciona el ámbito.
- Familia applyLa familia apply - apply, lapply, sapply, vapply, mapply y tapply - ejecuta una función sobre cada elemento de tus datos. Esto es lo que hace cada una y cuándo recurrir a ella.
- PipesQué significa %>%, cómo funciona el pipe nativo |> de R base, las reglas y marcadores de posición de cada uno y cuál usar en código nuevo.
- PaquetesCómo funcionan los paquetes de R: instalar desde CRAN con install.packages(), cargar con library(), require() frente a library(), pkg::fun() y los paquetes que conviene conocer.
- Directorio de trabajoDónde busca R los archivos y cómo controlarlo: getwd(), setwd(), list.files(), limpiar el entorno con rm(list = ls()) y por qué el autoguardado de .RData es una trampa.
Manipulación de datos
- dplyrQué es dplyr, cómo instalarlo y cómo sus seis verbos principales más el pipe convierten código enredado de data frames en pipelines legibles.
- Filtrar y subconjuntosTodas las formas de quedarte con las filas y columnas que quieres: máscaras lógicas con corchetes, la línea única subset(), %in%, las trampas de NA, y filter() y select() de dplyr.
- Añadir columnas (mutate)Cómo añadir, transformar y eliminar columnas de un data frame: df$new <- ..., ifelse() para columnas condicionales, transform(), y el mutate() de dplyr con case_when().
- Renombrar columnasRenombrar columnas de un data frame en R: names() y colnames(), renombrar por posición vs por nombre, setNames(), rename() de dplyr y limpiar encabezados importados desordenados.
- OrdenarCómo funciona realmente la ordenación en R: sort() para vectores, por qué los data frames necesitan el truco de índices de order(), órdenes descendentes y por varias columnas, y el arrange() de dplyr.
- Agrupar y resumirTodas las formas de calcular estadísticas por grupo en R: contar con table(), tapply() para una estadística por grupo, la interfaz de fórmula de aggregate(), y el group_by() con summarize() de dplyr.
- Merge y joinsCombinar data frames mediante una clave compartida: merge() para joins inner, left, right y full, claves con nombres distintos con by.x/by.y, la familia de joins de dplyr y rbind() para apilar filas.
- Pivot (remodelar)Formatos de datos ancho vs largo y cómo convertir entre ellos: pivot_longer() y pivot_wider() de tidyr, los antiguos nombres spread/gather y reshape() de R base.
Importar y exportar
- Leer CSVCómo importar archivos CSV a R con read.csv(): los argumentos que importan, la trampa del directorio de trabajo que causa la mayoría de los fallos y cuándo vale la pena readr::read_csv.
- Leer ExcelR no puede abrir archivos .xlsx por sí solo: el paquete readxl llena ese hueco. Cómo leer hojas, rangos y encabezados, escribir Excel de vuelta y esquivar las trampas clásicas de la importación desde Excel.
- Escribir CSV y RDSExportar desde R: write.csv con row.names = FALSE (siempre), write.table para otros delimitadores y saveRDS para viajes de ida y vuelta que no pierden tus tipos.
- FechasLa clase Date de R es un conteo de días disfrazado. Cómo parsear cadenas con as.Date, formatear fechas para la salida, restarlas, construir secuencias y cuándo necesitas POSIXct en su lugar.
Gráficos
- plot()Cómo funciona la función plot() de R: tipos de gráfico, títulos y etiquetas de ejes, colores, símbolos de puntos (pch), capas con lines() y abline(), y leyendas.
- HistogramaCómo hacer un histograma en R con hist(): elegir los breaks, dar estilo a las barras, cambiar a la escala de densidad, superponer una curva normal y la versión en ggplot2.
- BoxplotCómo hacer un diagrama de caja en R con boxplot(): leer la caja y los bigotes, la interfaz de fórmula para comparar grupos, el estilo y los números que hay detrás.
- Gráfico de dispersiónCómo hacer un gráfico de dispersión en R: grafica dos variables con plot(), añade una línea de regresión con abline(lm()), suaviza con lowess() y construye una matriz con pairs().
- Gráfico de barrasCómo hacer un gráfico de barras en R con barplot(): desde un vector con nombres o un table(), barras agrupadas y apiladas desde una matriz, estilo, y geom_col vs geom_bar.
- ggplot2Cómo funciona ggplot2: el modelo mental de datos + aes() + geom, mapear vs fijar estéticas, labs(), facet_wrap(), temas y guardar gráficos con ggsave().
Estadística
- Estadística descriptivaCómo resumir datos en R: mean(), median(), sd(), var(), summary(), quantile() - qué calcula cada una, el detalle del n−1 detrás de sd() y por qué mode() en R es una trampa.
- CorrelaciónMide cómo dos variables se mueven juntas con cor(), comprueba si la relación es real con cor.test() y escanea muchas variables a la vez con una matriz de correlación.
- Test tEjecuta tests t de una muestra, dos muestras y pareados con t.test(), y - la parte que de verdad importa - lee cada línea de la salida: t, df, valor p, intervalo de confianza.
- ANOVACompara las medias de tres o más grupos con aov(), lee la tabla ANOVA celda a celda y descubre qué grupos difieren realmente con TukeyHSD().
- Regresión linealAjusta una regresión con lm(), lee cada bloque de summary() - coeficientes, errores estándar, valores p, R cuadrado, el estadístico F - y haz predicciones con predict().
- Regresión logísticaModela resultados sí/no con glm(family = binomial): interpreta el summary, convierte los coeficientes en log-odds a odds ratios con exp() y obtén probabilidades predichas de la forma correcta.
- Intervalos de confianzaObtén intervalos de confianza para medias, proporciones y coeficientes de modelos - t.test(), prop.test(), confint() - además de qué significa realmente "95% de confianza" y cómo el tamaño muestral determina la anchura.
- Números aleatoriosGenera datos aleatorios con rnorm(), runif(), rbinom() y sample(), hazlos reproducibles con set.seed() y descifra el sistema de nombres d/p/q/r de R para distribuciones.