[1] 100
R: los fundamentosCapacitación en R
¡Aprenderemos a usar el lenguaje de programación R!
Usando datos administrativos familiares para las administraciones tributarias.
Algunos prerrequisitos
❌ La capacitación no requiere ningún conocimiento previo en programación estadística.
✅ Se requiere una computadora con R y RStudio instalados para completar los ejercicios.
✅ Se requiere conexión a Internet para descargar los materiales de capacitación.
R?R es un lenguaje de programación con poderosas capacidades estadísticas y gráficas.


R?R es muy flexible y poderoso—adaptable a casi cualquier tarea, (limpieza de datos, visualización de datos, econometría, análisis de datos espaciales, aprendizaje automático, web scraping, etc.)R es de código abierto y gratuito - ¡permitiendo que tanto usted como su institución ahorren dinero!R ha estado creciendo rápidamente en popularidad.
R ofrece una gran interfaz - RStudio.
Excel?✅ Fácil de usar.
❌ Solo es bueno para conjuntos de datos pequeños.
❌ No llevamos registro de lo que hacemos.
❌ No es sencillo combinar datos.
❌ Y la lista continúa…

STATA?✅ Stata es ampliamente usado en economía.
✅ Fácil de aprender.
❌ Solo es bueno para conjuntos de datos pequeños.
❌ ¡Costoso!
❌ Falta de flexibilidad… ¿tú también odias keep, preserve, y restore?

Si no es así, ¡asegúrate de haber abierto RStudio y no R!
Comencemos escribiendo tus scripts de R (código fuente) en el panel Source.
Puedes usar la barra de menú o Ctrl + Shift + N para crear nuevos scripts de R.
Los scripts nos ayudan a documentar y organizar los pasos que queremos realizar.
Para ejecutar un comando, escríbelo en el panel Source y presiona Ctrl+Enter (Windows) para ejecutarlo en la Consola.
El resultado aparecerá en el panel de la Consola (panel inferior izquierdo).
El panel Environment muestra todos los objetos que has creado durante tu sesión.
Una suma simple:
Resta, multiplicación, división:
En lugar de solo calcular, podemos guardar resultados para usarlos más tarde.
Ahora podemos usar monto_iva en otros cálculos:
_) - esto se llama snake_caseUsa # para agregar comentarios - R ignorará todo después de #
[1] 52500
Tip
Buena práctica: Comenta tu código para explicar POR QUÉ estás haciendo algo, no solo QUÉ estás haciendo.
Una función es una pieza de código reutilizable que realiza una tarea específica.
Piensa en las funciones como herramientas en una caja de herramientas:
mean() - calcula el promediosum() - suma todos los valoressqrt() - calcula la raíz cuadradaround() - redondea números[1] 12
[1] 3.14
[1] 15
Las funciones pueden tener argumentos (entradas) que controlan su comportamiento.
Funciones estadísticas:
¡Puedes crear tus propias funciones!
[1] 52500
[1] 82500
R trabaja con diferentes tipos de datos:
2. Carácter - texto (siempre entre comillas)
Usa class() para verificar el tipo de un objeto:
A veces necesitas convertir entre tipos:
[1] "character"
[1] "numeric"
[1] 51000
Un vector es una secuencia de valores del mismo tipo.
Crear vectores con c() (combinar):
[1] 50000 75000 90000 45000 82000
[1] "FIRM_001" "FIRM_002" "FIRM_003"
[1] TRUE TRUE FALSE TRUE FALSE
Aritmética de vectores - las operaciones se aplican a cada elemento:
Aplicar funciones a vectores completos:
Secuencias:
[1] 1 2 3 4 5 6 7 8 9 10
[1] 2020 2021 2022 2023 2024
[1] 0 10 20 30 40 50 60 70 80 90 100
[1] 0.00 0.25 0.50 0.75 1.00
Usa [] para acceder a elementos específicos:
[1] 50000 90000 82000
[1] 75000 90000 45000
[1] 75000 90000 45000 82000
[1] 75000 90000 45000
Encontrar elementos que cumplen una condición:
[1] FALSE TRUE TRUE FALSE TRUE
Usar vectores lógicos para filtrar:
En datos reales de administración tributaria, los valores faltantes son comunes:
¡Las operaciones matemáticas con NA devuelven NA!
Warning
¡Cualquier cálculo que involucre NA devolverá NA a menos que lo manejes explícitamente!
na.rmLa mayoría de las funciones estadísticas tienen un argumento na.rm (NA remove):
[1] 68400
[1] 342000
[1] 90000
Tip
¡Siempre verifica tus datos en busca de valores faltantes y decide cómo manejarlos!
[1] 50000 75000 90000 45000 82000
Ejemplo práctico: Tasa de cumplimiento
Tasa de Cumplimiento: 71.4 %
[1] "FIRM_3" "FIRM_6"
10:00 Parte 1: Objetos y Cálculos
monto_base con valor 125000tasa_impuesto con valor 0.15 (15%)impuesto_adeudadoimpuesto_adeudado y guárdalo en pago_totalParte 2: Usando Funciones
pago_total al entero más cercanomonto_baseabs() para obtener el valor absoluto de -500010:00 Parte 1: Creando Vectores
ids_empresas: “FIRM_001” hasta “FIRM_006” (usa paste0() y 1:6)montos_iva: 50000, 75000, NA, 90000, 45000, NAaños: 2020 a 2025 usando :tasa_estandar: repite 0.15 seis veces usando rep()Parte 2: Operaciones con Vectores
montos_iva por 1.05 para agregar 5% de penalizaciónParte 3: Indexación
Parte 4: Datos Faltantes
# Parte 1: Creando Vectores
ids_empresas = paste0("FIRM_", sprintf("%03d", 1:6))
montos_iva = c(50000, 75000, NA, 90000, 45000, NA)
años = 2020:2025
tasa_estandar = rep(0.15, times = 6)
# Parte 2: Operaciones con Vectores
mean(montos_iva, na.rm = TRUE)
sum(montos_iva, na.rm = TRUE)
montos_iva * 1.05
# Parte 3: Indexación
montos_iva[3]
montos_iva[c(2, 4, 5)]
montos_iva[montos_iva > 60000 & !is.na(montos_iva)]
# Parte 4: Datos Faltantes
sum(is.na(montos_iva))
is.na(montos_iva)
ids_empresas[is.na(montos_iva)]Los paquetes de R son colecciones de funciones creadas por la comunidad.
Piensa en R base como un teléfono inteligente, ¡y los paquetes como aplicaciones que instalas!
Dos pasos para usar un paquete:
install.packages("nombrePaquete")library(nombrePaquete)Note
Piénsalo así:
Algunos paquetes que usarás en este curso:
dplyr - Manipulación y transformación de datos
ggplot2 - Creación de visualizaciones profesionales
readr / readxl - Lectura de archivos CSV y Excel
data.table - Operaciones rápidas en conjuntos de datos grandes
lubridate - Trabajo con fechas
Tip
¡Aprenderemos estos paquetes en los próximos módulos!
Siempre guarda tu trabajo en scripts - ¡no solo en la consola!
Las funciones son tus amigas - usa help() cuando no estés seguro
Los vectores están en todas partes - son la base de los datos en R
Maneja los NAs explícitamente - usa na.rm = TRUE en los cálculos
Comenta tu código - ¡tu yo futuro te lo agradecerá!
Note
Próximos pasos:
?nombre_funcion)