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 consummary, y datos faltantes conNAeis.na. - Importar datos:
read.csvfrente aread.csv2(separador;y coma decimal),read.tableyreadr, y ficheros JSON. - Funciones propias, condicionales y bucles, y cuándo no hace falta un bucle: vectores lógicos con
sum,meanowhich. - tidyverse:
dplyrcon%>%(select,filter,mutate,group_byysummarize) y gráficos conggplot2, además de los de R base (plot,abline,pairs). - Simulación y modelos: generar datos con
rnormorpois, y regresión lineal conlme interpretación desummary. - 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:4no es una secuencia vacía, sino5 4, y el bucle da vueltas de más. Se evita conseq_leno conseq(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 quepull()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.