Cómo importar datos en R utilizando técnicas muy simples

 

Cuando empecé con R uno de los problemas fundamentales fue aprender a leer los datos para empezar a trabajar.

Es una etapa fundamental antes de empezar con la exploración de los datos y el posterior análisis.

Y quizá en mis inicios no le daba la atención que se merecía, y siempre estaba buscando en internet cómo poder importar datos en R: tanto archivos Excel como datos tipo .txt (ASCII para los amigos) .csv y archivos html.

Tenía más o menos claro cómo hacerlo, pero nunca había recogido las rutinas para leer datos.

Así que hoy quiero ayudarte a leer datos en R de manera sencilla utilizando unas rutinas efectivas. ¡A por ello!

Como quiero que practiques te paso el ejemplo del artículo:

 

# El roadmap: de los datos brutos a información

Quizá ya lo sepas pero me gustaría antes presentarte las etapas de los datos hasta llegar a la información y resaltar la importancia de la lectura.

Estas son las etapas:

  1. Lectura o importación de datos
  2. Limpieza de formato de datos
  3. Exploración
  4. Análisis
  5. Extracción de Información útil

Seguramente ya las conocías pero quédate con una cosa. ¿La etapa número 1 cuál es? La lectura o la importación. Queda todo dicho.

Sin datos vamos mal. Y los datos pueden tener muchos formatos. Por ello, en los próximos apartados te he recogido los formatos más habituales para que veas cómo puedes importar datos en R fácilmente.

A mi siempre me hubiera gustado tener un listado como el que te voy a mostrar.

Los formatos de datos más típicos son archivos ASCII (txt), csv y archivos de Excel.

# Importar archivos txt o csv (en general ASCII)

Los datos planos o ASCII en general que trabajan con caracteres tienen dos peculiaridades:

  1. El header o encabezamiento
  2. La separación de caracteres que indican la separación de columnas: pueden estar separadas por comas, puntos y comas, por tabulación, etc…

Estos son los tres tipos de archivos que te vas a encontrar en la práctica:

TIPO 1: NO tienes header. Solo datos

TIPO 2: En la primera línea tienes header. A partir de la 2, datos.

TIPO 3: Tienes un header engañoso

Ahora te explico cómo leerlos.

Tienes dos opciones:

  1. Trabajar con el paquete ‘readr’ efectivo cuando tienes muchos datos.
  2. Trabajar con la sentencia read.table.

 

# OPCIÓN 1:utilizar el paquete readr

PASO1: cargar el paquete ‘readr’

Según mi experiencia el paquete “readr” es fantástico usarlo. Es muy práctico. Para cargarlo puedes utilizar esta sentencia:

[sourcecode lang=»r»]
# Instalar el paquete ‘readr’ el paquete más práctico para leer ficheros planos</span>
install.packages("readr")
# Cargar el paquete
library("readr")
[/sourcecode]

PASO2: utilizar una sentencia de la siguientes:

Una vez cargado puedes trabajar con él. Tienes tres funciones que vas a utilizar:

  • read_csv(): para leer archivos con coma (“,”) como separador
  • read_csv2(): para leer archivos con punto y coma (“;”) como separador
  • read_tsv(): para leer archivos con tabulador (“\t”) como separador
  • read_delim(,sep =’|’): para leer archivos con separador distintos como puede ser el símbolo ‘|’

Leer archivos de tu PC poniendo la ruta del archivo

Para poder leer bien los archivos tienes que proporcionarle a R la ruta del archivo con el nombre. Lo puedes hacer tú poniendo toda la ruta con el nombre y la extensión. Tipo:

tusDatos <- read_csv(“la_ruta_del_archivo”)

Por ejemplo:

[sourcecode lang=»r»]
tusDatos <- read_csv("D:\Jordi\blog\contingut\post47-Como improtar datos en R/ejemplo-datos.txt")
[/sourcecode]

Tienes otra opción más molona 🙂

Leer archivos de tu PC seleccionando con el mouse

Si eres novato te recomiendo que selecciones los datos con una ventana emergente usando file.choose(). Así de fácil:

Para leer datos seleccionando el archivo de tu PC con el ratón puedes utilizar:

[sourcecode lang=»r»]
tusDatos <- read_csv(file.choose())
tusDatos <- read_csv2(file.choose())
tusDatos <- read_tsv(file.choose())
tusDatos <- read_delim(file.choose(),sep =’|’)
[/sourcecode]

Leer archivo de internet

Ahora se trata de poner la ruta de la web donde hay datos. Puedes probar con esta línea de código:

[sourcecode lang=»r»]
tusDatos <- read_tsv("http://www.sthda.com/upload/boxplot_format.txt")
[/sourcecode]

 

# Cómo leer los tres tipos de archivos con el paquete readr

El código para leer los tres tipos de archivos:

[sourcecode lang=»r»]
# TIPO 1: solo datos
tusDatos <- read_csv(file.choose(),skip = 0,col_names = FALSE)

# TIPO 2: encabezado una linea + datos
tusDatos <- read_csv(file.choose(),skip = 0,col_names = TRUE)

# TIPO 3: encabezado raro + datos
tusDatos <- read_csv(file.choose(),skip = 8,col_names = TRUE)
[/sourcecode]

 

# OPCIÓN 2: utilizar la función read.table

Recomiendo esta opción cuando no tienes demasiados datos (yo siempre he usado esta opción).

Puedes ir un paso más allá y trabajar como un pro. Para casos especiales cuando tienes encabezados. Es decir tienes caracteres que no quieres leer en las primeras filas.

tusDatos <- read.table(file.choose(), skip = 2, header =TRUE, sep =‘;’)

En este caso NO vas a leer las dos primeras filas y la tercera serán los nombres de las columnas (de las variables). Además el separador será en ; .

Para el ejemplo que te he puesto:

[sourcecode lang=»r»]
# TIPO 1: solo datos
tusDatos <- read.table(file.choose(), skip = 0, header = FALSE, sep =’,’)

# TIPO 2: encabezado una linea + datos
tusDatos <- read.table(file.choose(), skip = 0, header = TRUE, sep =’,’)

# TIPO 3: encabezado raro + datos
tusDatos <- read.table(file.choose(), skip = 8, header = TRUE, sep =’,’)
[/sourcecode]

Esta es la forma más general de leer un archivo de texto, ASCII o plano. ¡Recuérdala!

# Importar archivos Excel

Otros archivos muy típicos para trabajar son los datos de una tabla Excel.

 

OPCIÓN1: Puedes utilizar un método muy sencillo.

  1. Selecciona los datos de Excel y cópialo
  2. Lee los datos copiados con este código

[sourcecode lang=»r»]
read.table(file = "clipboard", sep = "\t", header=TRUE)
[/sourcecode]

¿Fácil, verdad?

 

OPCIÓN2: Utilizar el paquete “readxl” y podrás leer los archivos Excel que quieras.

Recuerda que la primera fila del Excel corresponden a los nombres de las variables. Para ser elegante trabaja así.

[sourcecode lang=»r»]
# Instalar el paquete ‘readxls’ el paquete más práctico para leer ficheros Excel
install.packages("readr")
# Leer el paquete
library("readxl")
[/sourcecode]

Para leer los datos solo tienes que hacer lo siguiente:

[sourcecode lang=»r»]
# Puedes leer la hoja poniendo el nombre
misDatos <- read_excel(file.choose(), sheet = "el nombre de la Hoja que quieres leer")
# Puedes leer la hoja número 1. La primera de todas
misDatos <- read_excel(file.choose(), sheet = 1) [/sourcecode]

Ya sabes leer archivos planos y de Excel de manera sencilla. ¡No está nada nada mal!

Puedes descargarte el ejemplo de R aquí:

Ahora te toca a ti. Prueba estas enseñanzas y a ver qué tal te va! Cuéntamelo en los comentarios 😉

13 comentarios en “Cómo importar datos en R utilizando técnicas muy simples”

    1. Hola Alvaro!
      Muchas gracias a ti! Me alegro que te sirva 🙂
      Saludos de BCN!

      1. Hola Jordi

        estoy teniendo problemas al leer un archivo de excel en RGui(32-bit):

        > read.csv(«C:/Usuarios/Fabiola/Mis documentos/data/clase.csv», header=T)
        Error in file(file, «rt») : no se puede abrir la conexión
        Además: Warning message:
        In file(file, «rt») :
        no fue posible abrir el archivo ‘C:/Usuarios/Fabiola/Mis documentos/data/clase.csv’: No such file or directory

        espero puedas apoyarme de favor

        1. Hola Fabiola!

          Puede ser que no tengas bien puesto el directorio:

          Prúeba así:

          read.csv(«C:/Usuarios/Fabiola/Mis documentos/data/clase.csv», header=T)

    1. Gracias Alejandro!
      De esto trata el blog 😉
      De ayudar 🙂 con explicaciones lo más sencillas posibles

  1. Rafael Barragán Flores

    Muchas gracias por tu aportación, es muy claro como lo abordas y explicas cada opción. Actualmente me estoy iniciando en el uso del R y me ha resultado de mucha ayuda. Gracias Jordi

    1. Gracias Rafael por tus palabras! Espero que vayas avanzado poco a poco en RStudio!

      Abrazos!

  2. Miguel Angel Alvarez Franco

    Muy claras tus explicaciones , muchas gracias por el aporte, me estoy iniciando en R y me servira mucho
    Gracias

  3. Buenas Jordi, no consigo abrir /leer tablas en csv con R ni con R studio. De las opciones que planteas aquí, readr no me funciona por asuntos de version creada antes de.. y con read.table no consigo tampoco, me da errores la ruta entre comillas y no me funciona la ventana emergente que debe de salir con la opción file.choose. ¿Un poco de luz? gracias

Los comentarios están cerrados.

Ir arriba