https://eduard-martinez.github.io
📂 En este capítulo el estudiante aprenderá a mantener su trabajo en R ordenado y accesible. Descubrirá qué es un directorio de trabajo, cómo configurarlo y cómo utilizar proyectos en RStudio para gestionar tus análisis de forma estructurada. Verá cómo crear, abrir y administrar proyectos, así como leer y guardar conjuntos de datos para que siempre pueda retomar su trabajo sin perder información.
El directorio de trabajo es la carpeta que R toma como punto de partida para leer y guardar archivos. Todo lo que guarde o cargue desde R, si no especificas otra ruta, se ubicará aquí. Piense en él como la carpeta predeterminada de tu proyecto.
La ruta que ves en la captura es: Proyectos Eduard/3_tidydata_tidyverse/public
Para conocer tu directorio actual ejecuta la función
getwd():
getwd() # Muestra el directorio de trabajo actual
[1] "D:/Dropbox/Teaching/Recursos R/2_read_write_files"
Para cambiarlo manualmente (aunque no es la mejor práctica):
setwd("C:/ruta/a/tu/carpeta")
Una forma práctica de evitar tener que configurar el directorio de trabajo dentro del código es abrir RStudio directamente desde el archivo script que vas a utilizar, en lugar de abrir primero el programa. Al abrir RStudio haciendo doble clic en el script, el directorio de trabajo se ajusta automáticamente a la carpeta donde se encuentra ese archivo.
💡 Evite usar setwd() y, en su lugar, prefiera trabajar con Proyectos de RStudio para garantizar rutas relativas y portabilidad.
Los proyectos son una manera alternativa de lidiar con la ruta de trabajo. Los proyectos permiten empaquetar datos y código en una especie de contenedor en el que se fija un directorio de trabajo relativo a cada equipo; haciendo más sencillo el proceso lectura y escritura de datos.
Puede crear un proyecto desde cero o puede asociar una carpeta existente a un proyecto:
En RStudio: File → New Project → New Directory → New Project.
Asigne un nombre y ubicación de la carpeta.
RStudio creará la carpeta y añadirá un archivo
.Rproj dentro.
File → New Project → Existing Directory → Create Project.
RStudio agregará el archivo .Rproj dentro de la carpeta sin mover otros archivos.
Cuándo se abre el archivo .Rproj automáticamente Rstudio
establece como directorio de trabajo la carpeta que contiene el archivo
.Rproj.
Ruta y ubicación del archivo:
El archivo .Rproj siempre debe ubicarse en la carpeta raíz del proyecto.
Para abrirlo:
Localice el archivo en su explorador de archivos (por ejemplo: C:/Usuarios/Eduard/MisProyectos/mi_proyecto.Rproj).
Haga doble clic sobre él, o bien, desde RStudio vaya a File → Open Project… y selecciónelo.
Antes de comenzar cualquier análisis en R, el primer paso, es cargar
los datos que se van a procesar. Los datos pueden encontrarse en
archivos con distintas extensiones, como .csv,
.txt, .xlsx, .dta o
.rds, e incluso provenir de bases de datos o URLs. Conocer
el formato del archivo le ayudará a elegir la función adecuada para
importarlo y asegurar que la información se lea sin errores.
En esta sección se muestra tres formas de cargar datos en R:
Usando el menú de RStudio, ideal para principiantes y para explorar archivos antes de cargarlos.
Usando funciones base de R (read.csv,
read.table) o paquetes específicos (readxl para Excel), que
ofrecen control completo sobre cómo se leen los datos.
Usando paquetes simplificados como rio, que unifican
la importación de múltiples formatos con una sola función y facilitan la
escritura y conversión de archivos.
RStudio permite importar datos desde el menú file:
Dirigase a File → Import Dataset → From Text (base)…
Seleccione el archivo que deseas leer.
Aparecerá un panel de vista previa donde R interpreta tus datos.
Ajusta las opciones (separador, encabezados, codificación) si es necesario.
Haz clic en Import y R cargará los datos.
💡 El código generado por este procedimiento aparecerá en la consola. Puedes copiarlo en su script para automatizar futuras importaciones.
A continuación se muestra la ventana que aparece al cargar datos desde el menú file.
Esta ventana combina la vista previa del archivo original y cómo quedará en R según la configuración elegida. En esa misma interfaz puedes modificar argumentos como: el nombre del objeto que se creará, la codificación de caracteres (Encoding), si la primera fila será el encabezado (Heading), el separador de columnas (Separator) y otros más que se muestran en la captura a continuación:
R ofrece un conjunto de funciones base que permiten leer y escribir
archivos en diferentes formatos de forma directa. Entre las más usadas
se encuentran read.csv() y read.table() para
archivos de texto y valores separados por comas, o
readRDS() para objetos guardados en formato nativo de
R.
Al usar funciones base se recomienda especificar correctamente argumentos como:
header: Indica si la primera fila contiene nombres
de columnas (TRUE o FALSE).
sep: Separador de columnas (, para CSV, “ para
tabulaciones, ; para CSV europeos).
dec: Símbolo para decimales (“.” o “,”).
fileEncoding: Si el archivo tiene tildes o
caracteres especiales, especificar “UTF-8” o “latin1” puede prevenir
problemas de símbolos raros.
Ejemplo con un archivo .csv
# Leer un archivo CSV
datos_csv <- read.csv("input/datos censo colombia.csv",
header = TRUE, # Primera fila contiene nombres de columnas
sep = ",") # Separador de columnas
riorioDespués de aprender a cargar datos desde el menú de Rstudio, y
utilizando las funciones base, es momento de conocer una herramienta que
simplifica y unifica este proceso: el paquete rio. Este
paquete se ha diseñado bajo la filosofía de importar y exportar datos
con una sola función, evitando que tengas que memorizar múltiples
funciones distintas según el tipo de archivo.
| File_type | Importar | Exportar |
|---|---|---|
.csv
|
import() | export() |
.txt
|
import() | export() |
.xls, .xlsx
|
import() | export() |
.dta
|
import() | export() |
rds
|
import() | export() |
Esta función utiliza los mismos argumentos para diferentes formatos.
file = “” Dirección de directorio
sep = Separador de columnas (en .csv y
.txt)
skip = Desde cuál fila comenzar a leer la base de
datos
sheet = Cuál hoja leer
header = Nombres de las columnas en primera fila
(TRUE O FALSE)
skipNul = T/F Se debe aceptar los no
elementos.
format.import_list().Leer desde un formato .csv:
data_csv = import(file="input/datos censo colombia.csv" , skip=6 , encoding="UTF-8")
# - skip = 6 → omite las primeras 6 filas del archivo (útil cuando hay encabezados o notas previas a los datos)
# - encoding = "UTF-8" → asegura que los caracteres especiales (acentos, ñ, etc.) se lean correctamente
## codigo_divipola departamento poblacion_en_hogares poblacion_en_lea
## 1 00 Total Nacional 43835324 329093
## 2 05 Antioquia 5931492 43296
## 3 08 Atlántico 2336434 5831
## 4 11 Bogotá, D.C. 7149540 31929
## 5 13 Bolívar 1903456 6004
Leer desde un formato .xlsx:
data_xls = import(file="input/hurto a personas.xlsx" , skip=9)
## MUNICIPIO MES GENERO CANTIDAD
## 1 MEDELLÍN (CT) ENERO FEMENINO 173
## 2 MEDELLÍN (CT) ENERO FEMENINO 1
## 3 MEDELLÍN (CT) ENERO MASCULINO 8
## 4 MEDELLÍN (CT) ENERO MASCULINO 312
## 5 MEDELLÍN (CT) FEBRERO FEMENINO 8
Leer desde una url en internet:
Puede cargar datos directamente de internet, lo que es útil para fuentes públicas o APIs.
data_url = import(file="https://www.datos.gov.co/resource/8dar-v8rj.json")
El formato se detecta por la extensión en el argumento file.
Permite exportar data frames a CSV, Excel, JSON, YAML, RDS, RData, QS, HTML, XML, DBF, ARFF, FWF, entre otros.
Puede exportar listas de data frames a múltiples archivos u hojas con export_list().
export(x=data_url, file="output/datos censo magdalena.csv")
export(x=data_url , file="output/datos censo magdalena.xlsx")
export(x=data_url , file="output/datos censo magdalena.rds")
convert() es la combinación de las funciones
import() y export(), ya que permite cambiar la
extensión de un archivo sin la necesidad de crear un objeto en R
convertir .csv -> .xlsx:
convert(in_file = "input/datos censo colombia.csv" , out_file="output/datos censo colombia.xlsx")
convertir .xlsx -> .rds:
convert(in_file="input/poblacion dane.xlsx" , out_file="output/poblacion dane.rds")
Imagine que tiene un data frame enorme, con cientos de filas,
factores, fechas y columnas numéricas. Guardarlo en .csv es
como pasarlo a una hoja de cálculo de texto:
Pierde parte de la “memoria” de R sobre qué columnas eran fechas, factores, etc.
Puede ser lento de escribir y de leer de nuevo.
El archivo ocupa más espacio en disco porque todo está en texto.
Ahora bien, .rds es como un archivo “de casa” para
R:
Guarda el objeto exactamente como está en la memoria, sin convertirlo a texto.
Al leerlo con readRDS() o con import(),
R lo recupera idéntico: tipos de datos, atributos, nombres de columnas,
etc.
Es mucho más rápido y suele ocupar bastante menos espacio que un CSV.
💡 .rds es hasta 16 veces más eficiente que el formato .csv. (Más discusión aquí)
1. Creación de un proyecto en RStudio
Cree un nuevo proyecto llamado “practica_datos” en una carpeta vacía.
Guarde un script llamado ejercicio_import.R dentro
de ese proyecto.
Abra el proyecto y confirme que el directorio de trabajo corresponde a la carpeta del proyecto.
2. Importar datos usando funciones base
Visite la siguiente Base
de datos descargue y guarde el archivo en formato
.csv
Carguelo usando read.csv() especificando
header = TRUE y el separador correcto.
Muestra las primeras 6 filas del data frame.
3. Importar datos con rio
Ahora importe la base del ejercicio anterior, utilizando la
libreria rio.
Obtenga los nombres de las columnas y muestre las dimensiones del DataFrame.
Obtenga el elemento de la fila 7 y la columna 3.
Colin Gillespie and Robin Lovelace, 2017. Efficient R Programming, A Practical Guide to Smarter Programming [Ver aquí]