fbpx

En esta entrada, veremos cómo cargar o leer archivos CSV a R. Al final, habrás visto:

Esta entrada, viene acompañada con código en R para practicar. Haz click aquí para verlo. Así, puedes copiar el código de la página y pegarlo en tu sesión de RStudio para practicar.

Qué es un archivo CSV?

Un fichero en formato CSV es un archivo de texto que guarda datos en columnas separadas por comas CSV significa “comma separated values”.

Luego cuando queremos importar a R estamos interesados en convertir este texto en un dataframe.

Es lo mismo importar, cargar, subir o leer los datos a R. En algunos casos el csv puede venir separado por punto y coma.

Para esto necesitamos instalar el paquete de R para leer csv: readr.

Este es, en mi opinión, el paquete más sencillo de usar para importar archivos de CSV. Si conoces otro, te invito a dejarlo en un comentario para que todos lo conozcamos.

Cómo instalar el paquete readr

Instalamos el paquete con

# instalar paquete readr
install.packages("readr")

# cargar paquete readr
library(readr)

Si nunca has instalado un paquete en R puedes mirar esta entrada donde explico qué son y todo el proceso para utilizarlos.

Por otra parte, necesitamos conocer la ruta del archivo CSV la ruta (o path en inglés) es la dirección donde está el archivo en tu computadora Ahora veremos cómo sacar la ruta con una función de R que viene muy bien.

Por otra parte, necesitamos conocer la ruta del archivo CSV la ruta (o path en inglés) es la dirección donde está el archivo en tu computadora Ahora veremos cómo sacar la ruta con una función de R que viene muy bien.

Es la misma que utilizamos en la entrada de cómo importar datos de Excel

Cómo encontrar la ruta de un archivo en R

La función se llama file.choose(). Esta función abre una ventana de Windows para buscar un archivo y regresa una variable tipo caracter con la ruta del archivo. Veamos una demostración en R.

Escribimos la función en el script y le damos run, en la ventana buscamos el archivo CSV y le damos «abrir»

Escribimos la función en el script y le damos run, en la ventana buscamos el archivo CSV y le damos «abrir»

# buscar la ruta del archivo de csv
file.choose()

Si ahora vemos la consola, está la ruta del archivo en un formato que entiende R, copiamos con todo y las comillas.

Lo pasamos a una variable tipo caracter que vamos a llamar ruta_csv y listo! La verdad me parece muy útil esta forma de encontrar la ruta.

Con el paquete cargado y la ruta ya podemos empezar a manipular el archivo de texto plano. Nota: los datos originales están en esta dirección del proyecto datosdemiercoles! son los datos de gapminder traducidos al español

Ahora sí vamos a importar csv

Cómo importar archivos CSV con código de R

Para cargar los datos utilizamos la función read_csv(…) . Esta es la función más sencilla para leer archivos CSV. Veremos cómo utilizarla para cargar archivos que estén separados por comas y por puntos y comas

CSV separado por comas

En el primer caso, cuando están separados por comas, los datos se ven así en el block de notas, todo e orden por aquí

Para importar, utilizamos el siguiente código:

# importar datos gapminder
gapminder <- read_csv(ruta_csv)

Si vemos, la variable creada es un dataframe con el contenido del csv. Perfecto. Si vemos el contenido de la variable con el código:

# mirar datos
head(gapminder)

Vemos que todos está bien.

CSV separado por comas, pero sin títulos

Ahora puede ocurrir que tengamos un csv que no tenga títulos. Es decir, que tenga sólo los datos sin encabezado

Para cargar un csv sin títulos agregamos la opción col_names = FALSE.

Esto va a crear un dataframe con nombres de columnas X1, X2, X3 y así. Como vemos ahora por pantalla

# caso sin titulo
ruta_sintitulo <- "ruta/de/tu/archivo" # utiliza nuevamente file.choose()
gapminder_sintitulo <- read_csv(ruta_sintitulo,
                                col_names = FALSE)

Si quieres agregar un nombre tenemos que pasar un vector de texto a la opción col_names, tiene que tener tantos nombres como columnas el dataframe. Esto es muy  útil también cuando queremos cambiar el nombre de las columnas del archivo. Por ejemplo con el código:

# para agregar nombres a las columnas
gapminder_contitulo <- read_csv(ruta_sintitulo,
                                col_names = c('pais',
                                              'anio',
                                              'vida',
                                              'poblacion'))

CSV separado por puntos y comas

Puede ser que algunas fuentes de datos vengan separadas por punto y coma, y los decimales solo con coma. En este caso la diferencia es que vamos a utilizar la función read_csv2

Un CSV separado por puntos y comas se vería así los datos son los mismo pero hemos cambiando las comas que separaban por puntos y comas y los decimales ahora están con comas en lugar de puntos.

Podemos leer los datos con el código:

# caso punto y coma
ruta_puntoycoma <- "ruta/de/tu/archivo" # utiliza nuevamente file.choose()
gapminder_puntoycoma <- read_csv2(ruta_puntoycoma)

Excelente, ya sabemos importar datos csv con y sin nombres de columna y separados con comas y puntos y comas!

Importar con la interfaz de RStudio

Para concluir esta entrada vamos a aprender como importar un fichero CSV con la interfaz de RStudio

En el menú superior de la interfaz vamos a FILE y hacemos click en IMPORT DATASET > FROM TEXT (readr)

Se abre una ventana en donde podemos buscar el archivo haciendo click en browse y nos muestra un vista de los datos

En las opciones de importación podemos ajustar cosas como el nombre de la variable en R, si la primera columna tiene nombre, el tipo de separador y otras opciones más avanzadas. Si te das cuenta en esta ventana, tenemos el mismo código que hemos aprendido a hacer en la sección anterior

Esto es otra forma de hacer lo mismo. Es importante conocer todas las opciones que tenemos y luego escoger la que nos dé mejores resultados. Chévere!

Gracias por leer esta entrada!

Espero que ahora puedas leer todos los archivos de CSV que quieras!

Comparte esta entrada con tus compañeros que no conocen la función (ahora no tan secreta) de file.choose() para buscar archivos

Te mando un saludo donde quiera que estés!