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:
Tabla de contenidos
# 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:
- Lectura o importación de datos
- Limpieza de formato de datos
- Exploración
- Análisis
- 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:
- El header o encabezamiento
- 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:
- Trabajar con el paquete ‘readr’ efectivo cuando tienes muchos datos.
- 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:
test.function = function(r) { return(pi * r^2) } test.function(1)
# Instalar el paquete 'readr' el paquete más práctico para leer ficheros; install.packages("readr") # Cargar el paquete library("readr")
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:
tusDatos <- read_csv("D:\Jordi\blog\contingut\post47-Como improtar datos en R/ejemplo-datos.txt")<br />print(tusDatos)<br />
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:
tusDatos <- read_csv(file.choose()) tusDatos <- read_csv2(file.choose()) tusDatos <- read_tsv(file.choose()) tusDatos <- read_delim(file.choose(),sep ='|')
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:
tusDatos &lt;- read_tsv("http://www.sthda.com/upload/boxplot_format.txt")
# Cómo leer los tres tipos de archivos con el paquete readr
El código para leer los tres tipos de archivos:
# TIPO 1: solo datos tusDatos &lt;- read_csv(file.choose(),skip = 0,col_names = FALSE) # TIPO 2: encabezado una linea + datos tusDatos &lt;- read_csv(file.choose(),skip = 0,col_names = TRUE) # TIPO 3: encabezado raro + datos tusDatos &lt;- read_csv(file.choose(),skip = 8,col_names = TRUE)
# 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:
# TIPO 1: solo datos tusDatos &lt;- read.table(file.choose(), skip = 0, header = FALSE, sep =',') # TIPO 2: encabezado una linea + datos tusDatos &lt;- read.table(file.choose(), skip = 0, header = TRUE, sep =',') # TIPO 3: encabezado raro + datos tusDatos &lt;- read.table(file.choose(), skip = 8, header = TRUE, sep =',')
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.
- Selecciona los datos de Excel y cópialo
- Lee los datos copiados con este código
read.table(file = "clipboard", sep = "\t", header=TRUE)
¿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í.
# Instalar el paquete 'readxls' el paquete más práctico para leer ficheros Excel install.packages("readr") # Leer el paquete library("readxl")
Para leer los datos solo tienes que hacer lo siguiente:
# Puedes leer la hoja poniendo el nombre misDatos &lt;- 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 &lt;- read_excel(file.choose(), sheet = 1)
Ya sabes leer archivos planos y de Excel de manera sencilla. ¡No está nada nada mal!
Puedes descargarte el ejemplo de R aquí:
## Después de importar datos en R. ¿Cómo los analizo?
Una vez sabemos importar datos en R y limpiarlos es momento de la magia. La magia llega cuando transformas esos datos en gráficos, modelos estadísticos y algoritmos para transformarlos en información.
Si quieres analizar datos en R es necesario conocer un método paso a paso para que logres resultados reveladores a través de los datos que has importando y limpiado. Si quieres conocer este método puedes acceder al training gratuito de estadística aquí:
…
Ahora te toca a ti. Prueba estas enseñanzas y a ver qué tal te va! Cuéntamelo en los comentarios 😉
[sourcecode language="r"]
test.function = function(r) {
return(pi * r^2)
}
test.function(1)
[/sourcecode]
muchas gracias por el aporte, en verdad me resultó muy útil
De eso se trata Liliana! 😉
Jordi, gracias me ha sido muy útil!.
Saludos desde Chile
Hola Alvaro!
Muchas gracias a ti! Me alegro que te sirva 🙂
Saludos de BCN!
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
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)
Excelente aporte. Gracias, me esta ayudando mucho. Saludos de ArgentinA
Gracias Alejandro!
De esto trata el blog 😉
De ayudar 🙂 con explicaciones lo más sencillas posibles
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
Gracias Rafael por tus palabras! Espero que vayas avanzado poco a poco en RStudio!
Abrazos!
Muy claras tus explicaciones , muchas gracias por el aporte, me estoy iniciando en R y me servira mucho
Gracias
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
muy util tio muchas gracias