Clases particulares de R y RStudio

¿Tienes una asignatura con R: Programación en R, una Programación de ADE, Economía o Estadística que se da en R, o las prácticas en RStudio de una estadística? Dime qué asignaturas cursas y te diré si puedo ayudarte. Sin permanencia, y con una clase de prueba gratuita.

Qué asignaturas son

Esta página es para las asignaturas que se llaman así, o parecido:

  • Programación en R
  • Programación (en R, en ADE, Economía o Estadística)
  • Software Estadístico
  • Software para el Análisis de Datos

La tienen sobre todo en ADE (también en el doble grado con Derecho), Economía, Estadística y Empresa, Ciencia de Datos y Criminología, y en másteres de bioinformática y bioestadística.

Cómo trabajamos

Trabajamos sobre tu material: los ejercicios, los apuntes y los exámenes de otros años de tu asignatura. El material puede estar en cualquier idioma; la clase es en castellano.

Escribimos el código juntos en RStudio, con los datos de tu asignatura o con conjuntos públicos parecidos, y nos paramos en lo que en R no es evidente: cuándo sobra un bucle, qué devuelve cada función y cómo leer una salida como la de summary.

Puedes venir a clases sueltas para un tema concreto o seguir todo el curso, y llevar varias asignaturas a la vez. Si no has programado nunca, partimos de cero. Y si se acerca el examen y me lo pides, hacemos una preparación intensiva con exámenes anteriores.

En qué trabajamos más

  • Primeros pasos en RStudio: vectores e indexación (v[-1], v[length(v)]), listas y matrices.
  • Data frames y tibbles: acceso por fila, por columna y por nombre (df[3, 2], df$columna), resúmenes con summary, y datos faltantes con NA e is.na.
  • Importar datos: read.csv frente a read.csv2 (separador ; y coma decimal), read.table y readr, y ficheros JSON.
  • Funciones propias, condicionales y bucles, y cuándo no hace falta un bucle: vectores lógicos con sum, mean o which.
  • tidyverse: dplyr con %>% (select, filter, mutate, group_by y summarize) y gráficos con ggplot2, además de los de R base (plot, abline, pairs).
  • Simulación y modelos: generar datos con rnorm o rpois, y regresión lineal con lm e interpretación de summary.
  • Entregas en R Markdown: código, resultados y comentario en un mismo documento.

Si en tu asignatura de análisis de datos te piden Python en vez de R, también la doy, con pandas y Jupyter.

Si lo que te cuesta es la estadística que hay detrás de los comandos, mira también Bioestadística o Estadística para Psicología y Ciencias Sociales.

Errores típicos

  • Escribir `(i + 1):n` cuando `i` ya vale `n`. En R, 5:4 no es una secuencia vacía, sino 5 4, y el bucle da vueltas de más. Se evita con seq_len o con seq(i + 1, length.out = n - i).
  • Recorrer con un bucle lo que un vector lógico resuelve en una línea, como en el ejemplo de abajo.
  • Que `mean(x)` dé `NA` porque falta algún dato, y olvidar na.rm = TRUE.
  • Esperar un vector y recibir una tabla: tibble[, 1] sigue siendo un tibble, mientras que pull() o $ devuelven el vector.
  • Leer un CSV con punto y coma con `read.csv` en vez de read.csv2: todo acaba en una sola columna y los decimales quedan como texto.
  • Confundir «la pendiente es significativa» con «el modelo ajusta bien». El p-valor puede ser minúsculo y el R², cercano a 0.

Un ejemplo: contar con un bucle y sin él

¿Cuántos bebés nacieron con menos de 2500 g de madres menores de 20 años y fumadoras? Se resuelve primero con un bucle y después con un vector lógico. Es un ejemplo en R con birthwt, un conjunto de datos público del paquete MASS.

library(MASS)              # trae el conjunto de datos birthwt
datos <- birthwt

# Con un bucle: miro las filas una a una y sumo 1 cuando se cumplen las tres condiciones
n <- 0
for (i in seq_len(nrow(datos))) {
  if (datos$bwt[i] < 2500 && datos$age[i] < 20 && datos$smoke[i] == 1) {
    n <- n + 1
  }
}
n

# Sin bucle: un vector lógico, TRUE en las filas que cumplen todo; sum() cuenta los TRUE
cumple <- datos$bwt < 2500 & datos$age < 20 & datos$smoke == 1
sum(cumple)

El bucle mira las filas una a una, y dentro del if se usa &&, que compara un solo valor. La segunda forma compara columnas enteras a la vez con &: cumple es un vector de TRUE y FALSE, y sum() cuenta los TRUE. Las dos dan 7, pero la segunda es la forma natural de trabajar en R.

Opiniones de alumnos de programación

Son reseñas de mi perfil de ClassGap, una plataforma de clases particulares: las ponen allí, sin que yo las controle, y las he clasificado por área según la asignatura de cada una.

Cargando opiniones…

Preguntas frecuentes

Mi asignatura se llama «Programación», pero la damos en R. ¿Es esta página?
Sí. En ADE, Economía o Estadística y Empresa, la programación de primero o de segundo suele ser en R. Si la tuya es en Python o en Java, mira Fundamentos de Programación.
¿Das R base o tidyverse?
Los dos, según lo que pida tu asignatura. A veces conviene ver la misma operación de las dos formas, por ejemplo un filtrado con corchetes y con filter, para entender qué hace cada una.
Estoy en un máster y uso R para mis asignaturas. ¿También?
Sí. He dado clase de R a alumnos de máster de bioinformática y bioestadística: importar y limpiar datos, gráficos, modelos y entregas en R Markdown.
¿Me ayudas con mis prácticas y entregas?
Sí. Vemos juntos qué te piden, cómo plantearlo y dónde te atascas, y reviso lo que vayas haciendo.

Pedir una clase de prueba gratuita