4.1 Lectura de bases de datos

4.1.1 Archivos delimitados

Modo de uso de la función read.csv() para la carga de archivos delimitados por comas, extensión .csv:

### Argumentos a utilizar
read.csv("archivo.csv", # Nombre o ruta completa al archivo
         sep = ",",     # Separador de los valores
         dec = ".",     # Punto decimal
         header = TRUE, # Leer el encabezado (TRUE) o no (FALSE)
         fill = TRUE)   # Rellenar celdas vacías: sí (TRUE, por defecto) o no (FALSE)

Los argumentos por defecto de read.csv() permiten cargar un archivo con encabezados, rellenar las celdas vacías con NA (recomendado), con el separador de celdas coma , y el separador de decimales .. Si el documento de interés tiene estas características, bastará con colocar lo siguiente para cargarlo:

read.csv("datos_investig.csv")

Modo de uso de la función read.csv() para la carga de archivos delimitados por comas, extensión .csv:

### Argumentos a utilizar
read.csv("archivo.csv", # Nombre o ruta completa al archivo
         sep = ",",     # Separador de los elementos
         dec = ".",     # Separador decimal
         header = TRUE, # Leer el encabezado (TRUE, por defecto) o no (FALSE)
         fill = TRUE)   # Rellenar celdas vacías: sí (TRUE, por defecto) o no (FALSE)

Por otro lado, existe read.csv2() que hace lo mismo que la anterior, pero para tablas que cuenten con el separador de celdas punto y coma ; y el separador de decimales ,. Todo dependerá de cómo esté configurado tu archivo original.

read.csv2("datos_investig2.csv")

Otros argumentos interesantes en ambas funciones son:

### Para definir qué valores sean considerados como NA (y no solo las celdas vacías)
read.csv2("datos_investig3.csv", na.strings = c("Na", "NA", "-9999"))

### Para coercer las columnas de texto a factor al leer el documento
read.csv2("datos_investig3.csv", stringsAsFactos = TRUE)

### Para no cargar ciertas filas del documento (por ejemplo la fila 10)
read.csv2("datos_investig3.csv", skip = 10)

4.1.2 Archivos tabulados

Modo de uso de la función read.table() para la carga de archivos delimitados por tabulaciones, extensión .txt:

### Argumentos a utilizar
read.table("archivo.txt", # Nombre o ruta completa al archivo
         sep = "",        # Separador de los elementos
         dec = ".",       # Separador decimal
         header = FALSE)   # Leer el encabezado (TRUE) o no (FALSE, por defecto)

Otros argumentos interesantes son idénticos a los encontrados en las funciones mostradas anteriormente:

### Para definir qué valores sean considerados como NA (y no solo las celdas vacías)
read.table("datos_investig3.txt", na.strings = c("Na", "NA", "-9999"))

### Para coercer las columnas de texto a factor al leer el documento
read.table("datos_investig3.txt", stringsAsFactos = TRUE)

### Para no cargar ciertas filas del documento (por ejemplo la fila 10)
read.table("datos_investig3.txt", skip = 10)

4.1.3 Archivos delimitados con otros caracteres

Una función versátil es read.delim() y su compañera read.delim2(). Ambas permiten cargar archivos delimitados por cualquier carácter. Realizan carga de archivos tal y como lo hacen read.csv(), read.csv2() o read.table().

read.delim("archivo.txt", # Nombre o ruta completa al archivo (puede ser .csv también)
         sep = "\t",      # Separador de columnas
         dec = ".",       # Separador decimal
         header = TRUE,  # Leer el encabezado (TRUE, por defecto) o no (FALSE)
         fill = TRUE)     # Rellenar celdas vacías: sí (TRUE, por defecto) o no (FALSE)

read.delim2("archivo.txt", # Nombre o ruta completa al archivo (puede ser .csv también)
         sep = "\t",      # Separador de columnas
         dec = ",",       # Separador decimal
         header = TRUE,  # Leer el encabezado (TRUE, por defecto) o no (FALSE)
         fill = TRUE)     # Rellenar celdas vacías: sí (TRUE, por defecto) o no (FALSE)

Cuando se define el sep = "\t" leen archivos tabulados; sep = " ", separados por espacios; sep = ",", separados por comas; o sep = ";", separados por punto y coma. Se podrá colocar el separador respectivo en caso sea uno diferente a los mencionados.

4.1.4 Hojas de cálculo de Excel

Existen varias librerías para cargar archivos de excel en R, con extensión .xlsx. Se recomienda el uso de la librería openxlsx, por su simplicidad de uso y porque no demanda de instalaciones adicionales de otros programas.

library(openxlsx)
read.xlsx("archivo.xslx", # Nombre o ruta completa al archivo
          colNames = TRUE, # Leer el encabezado (TRUE, por defecto) o no (FALSE)
          na.strings = c("Na", "NA", "-9999"), # Valores a ser considerados como NA
          sep.names = ".") # Rellena los espacios de los nombres de columnas con .
Es mucho más fácil trabajar con archivos con extensión .xlsx. Si forzosamente se debe abrir un archivo .xls (más antiguo), utiliza: readxl::read_xls("archivo.xls")

4.1.5 Bases de datos de R

Los archivos de extensión .rda son la forma más sencilla de compartir bases de datos que solo serán abiertas en el entorno de R. No son leídas con otro programa. Lo interesante de estas bases es que almacenan el nombre del objeto original con el que fueron creadas en R. Una vez cargas el archivo con la función load(), el objeto aparecerá en el ambiente con su nombre original (no necesariamente el mismo nombre que el archivo.rda):

load("archivo.rda")
También existen archivos .RData que aparecen automáticamente uno crea un proyecto. Estos son los archivos que almacenan el ambiente de un proyecto, es decir, todas las variables creadas durante la sesión de RStudio, y que fueron guardadas al cerrar esta misma.

4.1.6 Archivos de SPSS

En algunas ocasiones, los investigadores que manejen SPSS querrán abrir sus archivos de datos, con extensión .SAV, para generar gráficos o análisis en R. Esto es posible gracias a la integración realizada por una librería de tidyverse llamada haven:

library(haven)
read_sav("archivo.SAV")