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:

Descubre cómo analizar los datos de tus proyectos con éxito.

Sin perder miles de horas descifrando fórmulas estadísticas incomprensibles.

# 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:

<pres class= «lang:R»>

# Instalar el paquete ‘readr’ el paquete más práctico para leer ficheros

install.packages(«readr»)

# Cargar el paquete

library(«readr»)

</pre>

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:

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:

Descubre cómo analizar los datos de tus proyectos con éxito.

Sin perder miles de horas descifrando fórmulas estadísticas incomprensibles.

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

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

 

# 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:

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

¿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í.

Para leer los datos solo tienes que hacer lo siguiente:

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 😉

Descubre cómo analizar los datos de tus proyectos con éxito.

Sin perder miles de horas descifrando fórmulas estadísticas incomprensibles.

19 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

  4. Hola, estoy empezando a aprender R debido a una nueva necesidad surgida, sin embargo, no sé si con este software sería capaz de solucionarlo.
    Necesito que R lea los archivos .txt de una carpeta definida y que tienen una cabecera definida donde la linea 5 (no siempre) empieza con las palabras PS (nombre) y a continuación un dato que va variando según quien lo ha generado.
    Hay diez posibles variaciones de este dato, y necesito guardar este txt en una carpeta definida según este dato. Es decir necesito filtrar estos txt de una BBDD y almacenarlos en otras diez carpetas de forma ordenada según un campo específico.
    Es posible realizar esta tarea de forma automática, es decir, que cada vez que entre un archivo txt en esta carpeta realice el filtrado? sería posible además dejar un registro donde se pueda comprobar si la tarea se ha realizado con exito. O mejor aún crear alguna alarma de aviso cuando hay un error y cuando se realiza con exito.
    Y por ultimo esto se como se ejecutaria? de forma manual? podría estar corriendo de forma automática o necesita ejecutarse por ejemplo desde las tareas de windows.

    Saludos y Gracias

  5. Hola Jordi! Muchas gracias por tu aporte.

    Una pregunta más, tenés algún artículo donde explique cómo resolver problemas en el archivo original? por ejemplo, tengo un csv de airbnb que viene con saltos de línea (a veces dos o tres), y en consecuencia se corta la importación. Hay alguna forma de salvar este error o tengo que corregir el original a mano siempre?

  6. Muchas gracias Jordi, aunque me salen unos warning pero creo no afectan o si?

  7. Muy buenos días Jordi, excelente tutorial. Quisiera consultarte, tengo un documento de texto con datos que quiero leer, entre los datos hay una columna que guarda datos de fecha en formato dd/mm/aa, la pregunta es, ¿ Hay alguna instrucción para leer archivos de texto en la que yo pueda especificar un filtro en el que solo se caguen desde el archivo de texto las filas en las que mi columna de fechas este entre una fecha a y una fecha b?. Agradezco cualquier orientación al respecto

Los comentarios están cerrados.

Scroll al inicio