Flujos de Trabajo y organizaci贸n de proyectos


Date
Sep 7, 2025 12:00 AM
knitr::opts_chunk$set(echo=TRUE)

Paquetes necesarios

  • 馃摝 skimr: Resumen de datos
  • 馃摝 janitor: Limpieza y tabulaci贸n
  • 馃摝 easystats: Reportes autom谩ticos

library(skimr)     # Resumen de datos
library(janitor)   # Limpieza y tabulaci贸n
library(easystats) # Reportes autom谩ticos

驴Qu茅 es R?

  • R es un lenguaje de programaci贸n y un entorno para an谩lisis estad铆stico.
  • Libre y de c贸digo abierto.
  • Muy utilizado en estad铆stica, ciencia de datos, econom铆a, biolog铆a, entre otras 谩reas.
  • Permite manipulaci贸n, an谩lisis y visualizaci贸n de datos.

驴Por qu茅 usar R?

  • Gran colecci贸n de paquetes para an谩lisis y visualizaci贸n.
  • Comunidad activa y mucha documentaci贸n.
  • Integraci贸n sencilla con otros lenguajes y herramientas (Python, Quarto, etc.).
  • Ideal para reproducibilidad y trabajo colaborativo.

Entornos de Desarrollo para R (IDEs)

R se puede usar en diferentes entornos de desarrollo, cada uno con caracter铆sticas propias:

R GUI

  • Interfaz gr谩fica b谩sica que viene al instalar R.
  • Permite ejecutar c贸digo y visualizar resultados.
  • Limitada en funcionalidades avanzadas.

Jupyter Notebooks

  • Permite combinar c贸digo, texto y visualizaciones en documentos interactivos.
  • Soporte para R mediante kernels espec铆ficos.
  • Muy 煤til para prototipado y documentaci贸n reproducible.

Positron

  • Positron es un entorno de desarrollo para R y Python, creado por Posit (antes RStudio).
  • Ofrece una interfaz moderna y amigable para escribir, ejecutar y depurar c贸digo.
  • Permite gestionar proyectos, visualizar datos y generar reportes reproducibles.
  • Integra herramientas colaborativas y extensiones para flujos de trabajo avanzados.

RStudio

  • IDE m谩s popular para R.
  • Interfaz amigable, integraci贸n con proyectos, scripts, gr谩ficos y paquetes.
  • Herramientas avanzadas para depuraci贸n, gesti贸n de proyectos y generaci贸n de reportes.
  • Descargar RStudio

驴Qu茅 versiones usaremos en este curso?

  • R: 4.3.1 o superior
  • RStudio: 2023.06.1 o superior

Paquetes en R馃摝

R base tiene varias funciones por defecto:
list() log() cat() rm()

Paquetes Adicionales 馃摝

Se instalan desde R con:

  • install.packages() para paquetes de CRAN 馃摝
  • remotes o pak para todos los dem谩s repositorios

Primer aproximaci贸n a R y RStudio 馃搳

  • Consola
  • Ejecutar RStudio
  • Instalaci贸n de Paquetes.
install.packages("tidyverse")
install.packages("ggplot2")

Ayuda

  • ?funcion o help(funcion) para ayuda sobre funciones.
  • ??palabra_clave para buscar en la documentaci贸n.
  • Documentaci贸n en l铆nea y foros (Stack Overflow, R-bloggers).
  • Vignetas: Documentos largos que explican el uso de paquetes
    vignette(package="package-name")
    browseVignettes("grid")
  • ?<- para ayuda sobre operadores.

Directorios, rutas y nombres en R

  • Directorio: Carpeta donde se almacenan archivos y subcarpetas.
  • Ruta: Indica la ubicaci贸n de un archivo o carpeta dentro del sistema.
    • Ruta absoluta: Comienza desde la ra铆z del sistema.
      • Ejemplo: D:/juliana/MacroUdeA2025/datos/datos.csv
    • Ruta relativa: Comienza desde el directorio actual.
      • Ejemplo: MacroUdeA2025/datos/datos.csv

Buenas pr谩cticas de nombres

  • Usa nombres descriptivos para carpetas y archivos.
  • Ejemplo: proyecto_macro_2025.csv
  • Evita espacios y caracteres especiales.
  • Mant茅n una estructura organizada (por ejemplo, separar datos, scripts y resultados).

Proyectos y carpetas

Para trabajar en R podemos seguir diferentes rutas:
En lo personal a m铆 me gusta trabajar con proyectos.

Pero podemos usar el paquete 馃摝fs

getwd() setwd() dir_create("proyecto") dir_create("datos") dir_create("scripts") dir_create("resultados")

Ejercicio

  1. Crear un proyecto
  2. Crear las carpetas datos, scripts y resultados
  3. Abrir los archivos usando rutas relativas

archivo <- read.csv("../datos/penguins_2025.csv")

Primeros pasos en R

  • Todo lo que existe es un objeto
  • Todo lo que ocurre lo hace una funci贸n (Las funciones son objetos)
  • Las funciones (generalmente) viven en paquetes

Tipos de objetos en R

Variables

En R, las variables pueden almacenar diferentes tipos de datos:

x <- 5
nombre <- "Juliana"

Tipos principales

x <- 3.14 # Num茅ricas: N煤meros reales (decimales)
y <- 10   # Enteras: N煤meros enteros
nombre <- "Juliana" # Caracteres: Texto (strings)
es_mayor <- TRUE # L贸gicas: Verdadero o falso
nivel <- factor(c("bajo", "medio", "alto")) # Factores: Categor铆as o niveles
fecha <- as.Date("2025-09-05") # Fechas: Valores de fecha y hora

Operaciones B谩sicas

Operaciones b谩sicas

suma <- 2 + 3
producto <- 4 * 5

Vectores

edades <- c(23, 25, 30)
letras <- c("a", "b", "c")

Data Frames

datos <- data.frame(nombre = c("Ana", "Luis"), edad = c(28, 32))
head(datos)

Matrices

matriz <- matrix(1:6, nrow = 2, ncol = 3)
matriz

Arrays

array_3d <- array(1:24, dim = c(2, 3, 4))
array_3d

Funciones

longitud <- length(edades)
longitud
resumen <- summary(datos)
resumen

Listas

mi_lista <- list(numeros = c(1, 2, 3), letras = c("a", "b", "c"))
mi_lista$numeros

Importar archivos

Podemos realizarlo a trav茅s de diferentes paquetes como readr o readxl o con las funciones por defecto:


mi_tabla <- read.csv(file = "../datos/penguins_2025.csv",
                     header = TRUE)

Exploraci贸n de datos

  • Importar los datos en R

  • Explorar, para:

  • Saber si fueron importados correctamente

  • Resumir caracter铆sticas de los datos

  • Limpiar los datos


mi_tabla <- read.csv(file = "../datos/penguins_2025.csv",
                     header = TRUE)

skimr

Es un paquete con una 煤nica funci贸n skim().
La funci贸n skim() es 煤til para resumir conjuntos de datos, especialmente grandes conjuntos sin necesidad de explorarlos con detalle (e.g., toda la tabla, l铆nea por l铆nea).
Es un combo de algunas funciones del R base, como str(), class(), summary().

Vamos a aplicar la funci贸n summary()

summary(mi_tabla)

Vamos a aplicar la funci贸n skim()


s <- skim(mi_tabla)
s
yank(s, "numeric")
yank(s, "factor")

Preguntas

  • Use la funci贸n skim() y conteste:
    • 驴Cu谩l especie tiene mayor n煤mero de registros?
    • 驴Hay datos faltantes?
    • 驴Hay datos raros ?

easystats::report()


report(mi_tabla)
model <- lm(bill_len ~ bill_dep, data = mi_tabla)
report(model)

table() vs janitor::tabyl()

table(mi_tabla$species) # funci贸n default

tabyl(mi_tabla$species) # funci贸n del paquete janitor
tabyl(mi_tabla$year)

Tablas con dos variables

table(mi_tabla$species, mi_tabla$island) # funci贸n default

tabyl(mi_tabla, species, island) %>%
  adorn_percentages() %>%
  adorn_pct_formatting()

Preguntas

  • Al usar la funci贸n adorn_percentages(), 驴qu茅 porcentajes se est谩n calculando?
  • Hay un argumento llamado denominator = c(“all”, “row”, “col”) en la funci贸n adorn_percentages(). 驴Cu谩l es la diferencia de usar cada una de las opciones?
  • 驴Cu谩l es la diferencia entre adorn_percentages() y adorn_pct_formatting()?
Macroecolog铆a Evolutiva
Macroecolog铆a Evolutiva
Laboratorio

Our research interests include biodiversity patterns in space and time.