Importar datos en R (.csv, .xlsx y más)


Rosa Molina

Vamos a ver cómo importar en R nuestros datos de archivos de texto separado por comas ("comma separated values") y hojas de cálculo de libros de Microsoft Excel y OpenOffice/LibreOffice.

También hablaremos sobre cómo leer archivos de Numbers (Mac OS) y Google Sheets. Vamos allá.


ADVERTISEMENT



Datos. Son la base de todo análisis y visualización. Normalmente los obtenemos realizando experimentos en el laboratorio, mediciones en el campo, o simplemente los descargamos de internet.

Si los datos son tuyos, tú decides cómo los capturas. Tal vez en Microsoft Excel, Calc de LibreOffice/OpenOffice, Numbers o Google Sheets. Y además, también decides en qué formato los guardas: .csv, .xls, .xslx, etc.

Sin embargo, cuando descargas datos no siempre puedes elegir el formato del archivo.

Pero no hay de qué preocuparse, ya que R puede leer casi cualquier formato que te puedas imaginar. Comencemos.

Importar .csv en R

Para leer archivos de texto separado por comas (.csv) existe la función read.csv(). Esta función la encuentras en R por defecto. No hay necesidad de librerías externas.

El primer argumento de la función read.csv() es la ruta al archivo que quieres importar.

#Podemos usar la ruta completa desde el disco
mis_datos <- read.csv("C:/la/ruta/completa/a/mis_datos.csv")

#O podemos usar la ruta desde el directorio de trabajo
mis_datos <- read.csv("ruta/desde/el/directorio/a/mis_datos.csv")

Importante
Recuerda que las rutas siempre van entre comillas.
Tampoco olvides poner la extensión (en este caso .csv) del archivo.

Algunos argumentos útiles para esta función son header, sep y stringsAsFactors:

mis_datos <- read.csv("C:/la/ruta/completa/a/mis_datos.csv",
                         header = TRUE,
                         sep = ",",
                         stringsAsFactors = FALSE)

El argumento header acepta valores lógicos, es decir, TRUE o FALSE. Si la primera fila de tu base de datos representa los nombres de las variables debes escribir TRUE.

El argumento sep acepta valores de tipo carácter (character). Este valor debe ser el carácter que se usa para separar cada celda. Normalmente en los archivos .csv el separador es la coma (","). Si en tu archivo no lo es, puedes intentar con "\t", "" o " ", que representan al tabulador, cualquier cantidad de espacio en blanco, y un sólo espacio en blanco respectivamente.

Si alguna colummna de tus datos contiene valores de texto (cualquier valor que no sea numérico), esa columna se cargará en R como factor automáticamente. Si deseas que no sea así, necesitas colocar como FALSE el argumento stringsAsFactors.

Importar .txt en R

Para leer archivos de texto plano (.txt) se puede usar la misma función read.csv(). También puedes usar read.table() o read.delim().

Todas estas funciones y sus argumentos funcionan de la misma manera que describimos arriba.

Eso sí, no olvides poner la extensión correcta (.txt) cuando escribas la ruta del archivo.

Importar .xls y .xlsx en R

La extensión .xls se refiere a los archivos de Microsoft Excel de la versión 1997-2003. Mientras que .xlsx es la extensión de la versión actual.

Ambos se pueden abrir en R, pero se necesita instalar un paquete externo: readxl.

#Para instalar paquetes usamos la función install.packages()
install.packages("readxl")

Con el paquete ya instalado, vamos a cargarlo y usar la función read_xls() para archivos .xls y read_xlsx() para archivos .xlsx.

library(readxl)
mis_datos <- read_xlsx("C:/ruta/completa/a/mis_datos.xlsx")

Algunos argumentos útiles son: sheet y col_names. Ambas funciones los tienen.

#Opción 1: número de la hoja de cálculo (en este caso la primera)
mis_datos <- read_xlsx("C:/ruta/completa/a/mis_datos.xlsx",
                          sheet = 1,
                          col_names = TRUE)

#Opción 2: nombre de la hoja de cálculo
mis_datos <- read_xlsx("C:/ruta/completa/a/mis_datos.xlsx",
                          sheet = "nombre de la hoja",
                          col_names = TRUE)

El argumento sheet indica qué hoja de cálculo dentro del libro de Excel debe cargar R. Debe ser numérico (opción 1) o texto entre comillas (opción 2) con el nombre de la hoja.

El argumento col_names acepta valores lógicos. TRUE si la primera fila de los datos contiene los nombres de las variables. FALSE en caso contrario.

Importar .ods en R

La extensión .ods es la que usan los programas "Calc" de LibreOffice y Open Office. Se trata de alternativas gratuitas a Microsoft Excel.

Para leer estos archivos se necesita otro paquete externo: readODS.

#Para instalar paquetes usamos la función install.packages()
install.packages("readODS")

Vamos a cargar el paquete recién instalado y usar su función read_ods().

library(readODS)
mis_datos <- read_ods("C:/ruta/completa/a/mis_datos.ods")

Argumentos útiles: sheet, col_names y strings_as_factors.

mis_datos <- read_ods("C:/ruta/completa/a/mis_datos.ods",
                         sheet = 1,
                         col_names = TRUE,
                         strings_as_factors = FALSE)

El argumento sheet funciona igual que en las funciones de readxl, puede ser numérico o carácter.

El argumento col_names también funciona de la misma manera que en las funciones de readxl, acepta valores lógicos.

Por último, el argumento strings_as_factors, aunque está escrito distinto, funciona como el stringsAsFactors de read.csv(), acepta valores lógicos.

Sobre Numbers (Mac OS)

¿Es posible importar .numbers en R?

Buscamos mucho pero no encontramos alguna función o paquete que pueda hacerlo.

Lo mejor que puedes hacer es guardar tu base de datos como .csv. No recomendamos tanto que la exportes como .xlsx ya que la compatibilidad no es muy confiable.

Sobre Sheets (Google)

¿Es posible importar desde Sheets en R?

Es complicado, pero posible. Lo que se puede hacer es conectarse vía API, acceder al archivo, importarlo en R, e incluso después sobreescribirlo.

Esto es algo ya más avanzado (si quieres una entrada al respecto comenta y lo haremos). Lo que te recomendamos es, de nuevo, descargar en .csv.


Comentarios finales

Aquí presentamos varias formas de cargar datos en R. Existen muchas otras funciones y paquetes para importar todo tipo de archivos. Sin embargo, estas son las básicas y las que nos parecen más utilizadas.

No mostramos todos los argumentos de todas las funciones. Te invitamos a que los explores y veas qué más puedes controlar en las funciones que te presentamos.

Eso es todo, ¡gracias por leer!


Esta publicación fue hecha usando R versión 3.6.3 (2020-02-29).

ADVERTISEMENT



← Publicación más antigua Publicación más reciente →


Acerca del autor


Foto del autor

Rosa Molina

Rosa es nuestra bióloga experta en R. Le gusta la observación de aves y tocar el piano de vez en cuando.



Artículo sugerido



0 comentarios

Dejar un comentario

Por seguridad, los comentarios deben ser aprobados antes de ser publicados