Licenciatura en Estudios Internacionales

Taller de Estadística: Introducción a R



Prof. René Canales

Asistente de Investigación FONDECYT 1250518

Bremen International Graduate School of Social Sciences (BIGSSS)
Universität Bremen

Asistente de Investigación FONDECYT 1250518


Universidad de Santiago de Chile, Abril 2026

Contenidos del taller

Parte I

  • ¿Qué es R y por qué usarlo?
  • ¿Qué es RStudio?
  • Componentes de la interfaz
  • Instalación y configuración

Parte II

  • Objetos y tipos de datos
  • Variables
  • Bases de datos (data frames)
  • Operaciones básicas

¿Qué es R?

R es un lenguaje de programación estadística de código abierto, diseñado para:

  • Análisis estadístico y modelamiento
  • Visualización de datos
  • Investigación reproducible
  • Ciencia de datos

Nota

R es gratuito, multiplataforma y tiene una comunidad académica muy activa.

Creado por: Ross Ihaka y Robert Gentleman (1993)
Versión actual: R 4.x

¿Qué es RStudio?

RStudio es un entorno de desarrollo integrado (IDE) que hace R más fácil de usar.

R es el motor 🔧
RStudio es el tablero de control 🖥️

Puedes usar R sin RStudio, pero RStudio no funciona sin R.

Ventajas de RStudio:

  • Interfaz visual amigable
  • Autocompletado de código
  • Integración con Git
  • Soporte para Quarto/R Markdown
  • Gestión de proyectos

Componentes de RStudio

La interfaz de RStudio tiene 4 paneles principales:

① Script / Editor
Donde escribes y guardas tu código R.

② Consola (Console)
Donde se ejecuta el código y ves los resultados.

③ Entorno (Environment)
Muestra los objetos y variables activos.

④ Panel Inferior Derecho
Archivos, Gráficos, Paquetes y Ayuda.

Primeros pasos en R

R puede usarse como una calculadora directamente en la consola:

# Operaciones básicas
2 + 3        # Suma → 5
10 - 4       # Resta → 6
3 * 7        # Multiplicación → 21
15 / 4       # División → 3.75
2 ^ 8        # Potencia → 256
sqrt(144)    # Raíz cuadrada → 12

Tip

Todo lo que va después de # es un comentario y R lo ignora. ¡Úsalos para documentar tu código!

Objetos en R

En R, todo es un objeto. Los objetos almacenan información y tienen un tipo.

# Crear un objeto numérico
edad <- 25

# Objeto de texto (character)
nombre <- "René"

# Objeto lógico (logical)
es_estudiante <- TRUE

# Ver el tipo de un objeto
class(edad)         # "numeric"
class(nombre)       # "character"
class(es_estudiante) # "logical"

Importante

El operador <- se usa para asignar valores a objetos (también puedes usar =).

Tipos de datos principales

Tipo Descripción Ejemplo
numeric Números reales 3.14, 100
integer Números enteros 1L, 42L
character Texto "hola", "Bremen"
logical Verdadero/Falso TRUE, FALSE
factor Niveles factor("alto", "bajo")
NA Valor faltante NA
# Verificar tipos
is.numeric(3.14)      # TRUE
is.character("hola")  # TRUE
is.logical(FALSE)     # TRUE

Variables en R

Una variable es un nombre que apunta a un objeto almacenado en memoria.

# Asignación de variables
x <- 10
y <- 5

# Operaciones con variables
suma   <- x + y    # 15
resta  <- x - y    # 5
doble  <- x * 2    # 20

# Ver todas las variables activas
ls()

# Eliminar una variable
rm(x)

Tip

Usa nombres descriptivos: edad_promedio es mejor que ep o var1.

Vectores

El vector es la estructura de datos más básica en R: una secuencia de elementos del mismo tipo.

# Crear vectores con c()
edades   <- c(23, 31, 28, 25, 19)
nombres  <- c("Ana", "Luis", "María", "Pedro", "Carla")
activos  <- c(TRUE, FALSE, TRUE, TRUE, FALSE)

# Acceder a elementos (índice desde 1)
edades[1]       # 23 (primer elemento)
edades[2:4]     # 31 28 25 (elementos 2 al 4)
nombres[c(1,3)] # "Ana" "María"

# Operaciones sobre vectores
mean(edades)    # Promedio → 25.2
sum(edades)     # Suma → 126
length(edades)  # Cantidad de elementos → 5

Bases de datos: Data Frames

Un data frame es una tabla de datos donde cada columna es una variable y cada fila es una observación.

# Crear un data frame
estudiantes <- data.frame(
  nombre = c("Ana", "Luis", "María", "Pedro"),
  edad   = c(23, 31, 28, 25),
  nota   = c(6.5, 5.8, 6.9, 6.1),
  activo = c(TRUE, FALSE, TRUE, TRUE)
)

# Explorar el data frame
head(estudiantes)      # Primeras 6 filas
str(estudiantes)       # Estructura
dim(estudiantes)       # Dimensiones (filas, columnas)
nrow(estudiantes)      # N° filas → 4
ncol(estudiantes)      # N° columnas → 4

Acceder a datos en un Data Frame

# Por nombre de columna (con $)
estudiantes$nombre     # Vector de nombres
estudiantes$edad       # Vector de edades

# Por posición [fila, columna]
estudiantes[1, ]       # Primera fila completa
estudiantes[, 2]       # Segunda columna completa
estudiantes[2, 3]      # Fila 2, Columna 3 → 5.8

# Filtrar filas con condiciones
estudiantes[estudiantes$activo == TRUE, ]
estudiantes[estudiantes$nota >= 6.5, ]

# Estadísticas por columna
mean(estudiantes$nota)   # Promedio de notas
summary(estudiantes)     # Resumen estadístico

Importar datos externos

En la práctica, cargaremos datos desde archivos externos:

# CSV (comma-separated values)
datos <- read.csv("mi_archivo.csv")

# Con separador punto y coma (común en Europa/LatAm)
datos <- read.csv2("mi_archivo.csv")

# Excel (requiere paquete readxl)
# install.packages("readxl")
library(readxl)
datos <- read_excel("mi_archivo.xlsx")

# Ver los primeros registros
head(datos)
summary(datos)

Tip

Usa Proyectos de RStudio para mantener organizados tus archivos y rutas de trabajo.

Paquetes en R

Los paquetes son colecciones de funciones que extienden las capacidades de R.

# Instalar un paquete (solo una vez)
install.packages("tidyverse")

# Cargar un paquete (cada sesión)
library(tidyverse)

# Paquetes esenciales para comenzar:
install.packages(c(
  "tidyverse",   # Manipulación y visualización de datos
  "readxl",      # Leer archivos Excel
  "janitor",     # Limpieza de datos
  "skimr"        # Resúmenes estadísticos
))

Recodificar variables con dplyr

Recodificar significa cambiar los valores de una variable: renombrar categorías, colapsar grupos o crear nuevas etiquetas.

Nota

¿Cuándo usar recode()?

  • Renombrar categorías de texto
  • Cambiar valores por etiquetas
  • Corregir errores de entrada
# Primero cargamos dplyr
library(dplyr)

# recode() cambia valores específicos
estudiantes <- estudiantes |>
  mutate(
    nivel = recode(nota,
      "6.5" = "Bueno",
      "5.8" = "Regular",
      "6.9" = "Excelente",
      "6.1" = "Bueno"))

Recodificar con condiciones: case_when()

Cuando la recodificación depende de condiciones lógicas, case_when() es más flexible que recode().

estudiantes 
  mutate(
    categoria = case_when(
      nota >= 6.5              ~ "Distinción",
      nota >= 5.0 & nota < 6.5 ~ "Aprobado",
      nota < 5.0               ~ "Reprobado"
    )
  )

Tip

case_when() trabaja con rangos y condiciones, no solo valores exactos. Ideal para variables numéricas continuas.

¡Gracias!

¿Preguntas?


René Canales

rene.canales@usach.cl

Github: https://github.com/renejcanales/estadistica_usach