2009-07-29 30 views
5

Tengo un archivo Excel con un gran conjunto de datos. Las gráficas incorporadas disponibles en Excel son no lo suficiente como para analizar estos datos, así que estoy pensando acerca del uso de alguna herramienta como octava o R.Cargando datos del archivo Excel en R u Octave

estaba pensando en algún método para cargar un archivo de Excel directamente en octava o R. Busqué en la web y encontré que muchas personas han tenido éxito exportando datos de Excel a un archivo CSV.

La pregunta: ¿Hay una manera directa de cargar un archivo de Excel en R u Octave?

Respuesta

4

Sí, here's how:

usuarios de Windows pueden utilizar odbcConnectExcel en el paquete RODBC. Esto puede seleccionar filas y columnas de cualquiera de las hojas en un archivo de hoja de cálculo de Excel (al menos desde Excel 97-2003, dependiendo de sus controladores ODBC: llamando a odbcConnect directamente se pueden leer las versiones de nuevo a Excel 3.0). La versión odbcConnectExcel2007 leerá los formatos de Excel 2007 así como los anteriores (siempre que los controladores estén instalados: vea RODBC).

3

Otra opción (e incluso portátil) es read.xls en el paquete gdata. Está disponible multiplataforma ya que depende del código subyacente de Perl para analizar, leer, ... datos del archivo xls en un archivo csv que luego se lee. Los paquetes requeridos de Perl son proporcionados por gdata.

Un paquete de Octave podría crearse fácilmente utilizando el mismo truco.

3

Su pregunta ya ha sido respondida. En caso de que esto ayude en algún caso futuro, un recurso realmente útil para este tipo de preguntas es el R Data Import/Export document que cubre una gran cantidad de útiles API, paquetes, consejos, etc. para acceder a los datos de algunas bases de datos y formatos de archivo comunes.

Por ejemplo, hay un Excel section, que cubre una gran cantidad de terreno en las respuestas ya proporcionadas.

Otro consejo útil es probar el sistema de búsqueda de ayuda R. Por ejemplo, tratar cualquiera de las siguientes desde el símbolo R:

> ??xls 
> ??excel 

EDIT: BTW, ??xls es corto para help.search("xls").

+0

+1, gracias por dirigirme a este documento, hecho por razones desconocidas, estaba más inclinado hacia octava, y no se concentraron en R. Pero, ahora voy a empezar a usar R ;-) ... – Alphaneo

1

La manera más fácil es que sus datos tengan la forma de un archivo CSV, y luego use read.csv() para leer los datos. Tenga en cuenta que cuando lea los datos, esa R leerá en cadenas de caracteres y los convertirá en factores. Esto puede convertirse en un problema cuando intente subconjunto, los datos, etc.

Alternativamente, si desea leerlo como un archivo nativo de Excel, puede usar el paquete RODBC.

library('RODBC') 
yourData <- sqlFetch(odbcConnectExcel("yourData.xls"), 
    sqtable = "nameOfSheet", 
    na.strings = "NA", 
    as.is = TRUE)      
odbcCloseAll() 
1

Una solución aún más simple para Windows es usar el paquete xlsReadWrite. No necesita Perl, solo instálelo como un paquete R y podrá leer y escribir archivos de Excel como desee.

+0

Sin embargo, no es de código abierto ni portátil. –

+0

+1 @Rob, gracias. – Alphaneo

1

Ahora podemos utilizar read.csv o read.table.

Por ejemplo

df = read.csv("~/data/demo.csv",header = TRUE) 
Cuestiones relacionadas