viernes, 21 de agosto de 2009

Importar datos de una hoja de cálculo


Una de las primeras preguntas de todas las personas que empiezan a trabajar con R es ¿cómo puedo importar mis datos de Excel? La misma pregunta se hacen los que utilizan otras hojas de cálculo como Calc de OpenOffice.org, Gnumeric de Gnome, KSpread de KOffice, etc.

La solución más sencilla consiste en utilizar la función read.table (o sus variantes read.delim y read.csv) para importar una tabla de datos tipo texto. Es decir, previamente debemos guardar la tabla de datos de la hoja de cálculo como un archivo de texto delimitado con tabulaciones o con comas.
Los pasos son los siguientes:

  1. Abrir la hoja de cálculo con nuestro programa (Excel, Calc,...) y guardar la hoja activa que contenga la tabla como un archivo de texto delimitado. Podremos elegir el tipo de delimitador (tabulación, coma, punto y coma,...) y el nombre y la extensión del archivo. Por ejemplo, podemos guardar un archivo de texto con el separador "," y el nombre "MiTabla.txt" o "MiTabla.csv" (mejor cuando el separador es "," o ";").

  2. Recuperar la tabla desde la consola de R con la instrucción

    > mitabla.df <- read.table("MiTabla.csv", header=T, sep=",")

    o también con la instrucción equivalente

    > mitabla.df <- read.csv("MiTabla.csv")
Cuando el separador es una tabulación, podemos utilizar la instrucción read.delim.

Para todas las personas que tienen la coma "," como separador decimal en sus programas de hojas de cálculo, al guardar el archivo de texto se debe utilizar como separador el punto y coma ";" o la tabulación. Entonces la importación se realiza con las instrucciones:

> mitabla.df <- read.table("MiTabla.csv", header=T, dec=",", sep=";")
o
> mitabla.df <- read.csv2("MiTabla.csv")

Para las tabulaciones es

> mitabla.df <- read.table("MiTabla.txt", header=T, dec=",", sep="\t")
o
> mitabla.df <- read.delim2("MiTabla.txt")

Truco: También es posible recuperar una tabla desde el portapapeles de nuestro sistema operativo con el parámetro file="clipboard" en lugar del nombre del archivo. ¡Pruebalo!

En resumen, hay que guardar la tabla como archivo de texto con separadores y tener en cuenta qué tipo de punto decimal tenemos y qué separador utilizamos.

Para los usuarios de Windows y Excel, también es posible abrir una conexión con el archivo de las hojas de cálculo y seleccionar columnas o tablas de alguna de las hojas que contiene. Para ello debemos utilizar odbcConnectExcel del paquete RODBC.

Más información en R Data Import/Export

4 comentarios:

  1. Hermanos saludos desde Venezuela tremendo blog , estoy nuevo en R pero trabajando duro usaré una herramienta importante para la investigación estadística viva el software libre.

    ResponderEliminar
  2. Hola, soy nuevo en el blog y con el R tambien! y tengo una duda, tengo varios archivos diferentes de excel unos 10, y lo que tengo que hacer es pasarlos a R y juntarlos en un solo fichero comun y no se como hacerlo..

    El pasar un fichero excel a R si creo que puedo saber pero lo de unir todos los ficheros no tengo ni idea! si me podriais ayudar lo agradeceria mucho!

    Un saludo

    ResponderEliminar