Ir al contenido
σestadistica.ar

estadistica.ar · Enciclopedia de Estadística en españolhttps://estadistica.ar/conceptos/primeros-pasos-en-r

M16 · CómputoTroncalProcedimiento

Primeros pasos en R

Lo mínimo para dejar de depender de la planilla: importar una base, mirarla, calcular descriptivos y graficar, sin aprender a programar antes.

Por Jorge Luis Montivero, Licenciado en Estadística · Mu3Sigma

1 · Por qué R

Porque es gratis, porque es el estándar en investigación, y sobre todo porque deja registro. Un análisis hecho con clics no se puede rehacer ni revisar; un script sí.

2 · Lo mínimo que hay que instalar

R es el motor y RStudio el entorno donde se trabaja. Se instalan en ese orden y son dos programas distintos: R sin RStudio es incómodo, RStudio sin R no funciona.

Al abrir RStudio hay cuatro paneles. Los dos que importan al principio:

  • Script (arriba a la izquierda): donde se escribe el código que se guarda.
  • Consola (abajo a la izquierda): donde se ejecuta.

Todo lo que valga la pena va en el script, no en la consola. Ctrl+Enter ejecuta la línea donde está el cursor.

3 · Los cuatro conceptos

Asignar. <- guarda algo con un nombre.

edades <- c(23, 45, 31, 52)

Vector. Una serie de valores del mismo tipo. c() los junta.

Data frame. Una matriz de datos: filas de casos, columnas de variables. Es con lo que se trabaja siempre.

Función. Algo que hace una cosa: mean(), table(), read.csv(). Recibe argumentos entre paréntesis.

mean(edades)

Y el signo $ accede a una columna: datos$edad.

4 · El flujo completo

# 1 · Importar
datos <- read.csv("ingresos-eph.csv")

# 2 · Mirar qué llegó — siempre, antes de cualquier cosa
dim(datos)        # cuántas filas y columnas
str(datos)        # tipo de cada columna
head(datos)       # las primeras filas
summary(datos)    # mínimos, máximos, medias y faltantes

# 3 · Descriptivos
mean(datos$ingreso_ocup_principal)
median(datos$ingreso_ocup_principal)
sd(datos$ingreso_ocup_principal)
quantile(datos$ingreso_ocup_principal)

# 4 · Una variable categórica
table(datos$nivel_ed)
round(100 * prop.table(table(datos$nivel_ed)), 1)

# 5 · Gráficos
hist(datos$ingreso_ocup_principal, breaks = "FD")
boxplot(ingreso_ocup_principal ~ sexo, data = datos)

# 6 · Con los ponderadores de la encuesta
weighted.mean(datos$ingreso_ocup_principal, datos$ponderador)

Con eso ya se puede hacer el análisis descriptivo completo de una base real. El archivo de ejemplo se descarga del caso de los ingresos de la EPH.

5 · Lo que ese código devuelve, y lo que no dice

Corrido sobre ese archivo, el flujo anterior funciona entero. Pero hay tres cosas que la salida no aclara y conviene saber antes de creerle.

El promedio del paso 3 no es el de la población

mean(datos$ingreso_ocup_principal)$990.200
weighted.mean(…, datos$ponderador)$1.104.227

summary() calcula promedios de cosas que no los tienen

sexo viene codificado como 1 y 2, así que summary(datos$sexo) informa obedientemente una media de 1,46. No es un error del programa: es que R no sabe que esa columna es una categoría. Lo mismo pasa con nivel_ed, aglomerado y cat_ocup.

El código 7 no es el nivel más alto

table(datos$nivel_ed) devuelve siete categorías numeradas, y el orden engaña:

CódigoQué esMediana del ingreso
1Primario incompleto$500.000
4Secundario completo$800.000
6Superior completo$1.100.000
7Sin instrucción$580.000

6 · Las tres cosas que confunden al principio

<- y =. Los dos asignan; la convención en R es <-. En el teclado, Alt+Guion lo escribe.

Los índices arrancan en 1, no en cero. datos[1, ] es la primera fila.

NA no es cero. Es “no disponible”. Muchas funciones devuelven NA si hay un solo faltante, y hay que pedirles na.rm = TRUE explícitamente:

mean(datos$ingreso, na.rm = TRUE)

Esa incomodidad es a propósito: te obliga a enterarte de que hay faltantes.

7 · Cuándo sumar paquetes

R base alcanza para todo lo de esta entrada. Cuando el trabajo crece, dos paquetes valen la pena:

install.packages(c("dplyr", "ggplot2"))   # una sola vez
library(dplyr)                             # en cada sesión

dplyr para manipular datos con verbos legibles:

datos |>
  filter(edad >= 25) |>
  group_by(sexo) |>
  summarise(mediana = median(ingreso_ocup_principal), n = n())

ggplot2 para gráficos publicables. Los dos tienen curva de aprendizaje; ninguno es urgente.

8 · Errores frecuentes

  • Trabajar en la consola y no en el script. Lo que no está en el script no existe: no se puede rehacer ni revisar.
  • No mirar la base antes de analizar. str() y summary() son dos líneas que evitan horas.
  • Leer los promedios que summary() calcula sobre columnas codificadas. Una media de sexo de 1,46 no significa nada.
  • Analizar una encuesta sin los ponderadores. En el archivo del caso, la diferencia entre el promedio simple y el ponderado es del 11,5 %.
  • Suponer que los códigos están ordenados. En la EPH, nivel_ed = 7 es “sin instrucción”: el más bajo, numerado último.
  • Olvidar na.rm = TRUE y concluir que el promedio es NA.
  • Usar rutas absolutas. read.csv("C:/Users/…") no funciona en otra computadora. Ver organización de un proyecto.
  • Confundir = con ==. Uno asigna, el otro compara.
  • Nombres de columna con espacios o acentos. Funcionan, pero obligan a escribir comillas invertidas todo el tiempo.
  • Guardar el espacio de trabajo al salir. Decir que no: arrancar limpio cada vez es lo que garantiza que el script se baste a sí mismo.

Herramientas de este tema

Seguir leyendo

Cómo citar: Montivero, J. L. (2026). Primeros pasos en R. estadistica.ar. https://estadistica.ar/conceptos/primeros-pasos-en-r

estadistica.ar es gratuita y sin publicidad. Si te sirvió, podés invitar un cafecito por transferencia al alias mu3sigma. Asesoramiento estadístico, encuestas y capacitaciones: m3s.pro · WhatsApp +54 9 383 499-7929.

Cómo citar esta entrada

APA (7.ª edición)

Montivero, J. L. (2026). Primeros pasos en R. estadistica.ar. https://estadistica.ar/conceptos/primeros-pasos-en-r

BibTeX

@misc{estadistica_ar_primeros_pasos_en_r,
  author       = {Montivero, Jorge Luis},
  title        = {{Primeros pasos en R}},
  year         = {2026},
  howpublished = {\url{https://estadistica.ar/conceptos/primeros-pasos-en-r}},
  note         = {estadistica.ar. Consultado el \today},
  urldate      = {2026-09-28}
}

Última actualización: 28 de septiembre de 2026. El contenido está bajo licencia CC BY-NC-SA 4.0: se puede reutilizar citando la fuente y sin fines comerciales.