Importación de archivos de Excel en R, xlsx o xls

Por favor alguien puede ayudarme a la mejor manera de importar un archivo excel 2007 (.xlsx) en R. He intentado varios métodos y ninguno parece funcionar. Me actualicé a 2.13.1, Windows XP, xlsx 0.3.0, no sé por qué sigue apareciendo el error. Lo intenté:

AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx","DNA_Tag_Numbers") 

O

 AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx",1) 

pero obtengo el error:

  Error in .jnew("java/io/FileInputStream", file) : java.io.FileNotFoundException: C:\AB_DNA_Tag_Numbers.xlsx (The system cannot find the file specified) 

Gracias.

Para una solución que no tiene dependencias externas *, ahora hay readxl :

El paquete readxl facilita la obtención de datos de Excel y de R. Comparado con muchos de los paquetes existentes (por ejemplo, gdata, xlsx, xlsReadWrite) readxl no tiene dependencias externas, por lo que es fácil de instalar y usar en todos los sistemas operativos. Está diseñado para trabajar con datos tabulares almacenados en una sola hoja.

Readxl es compatible tanto con el formato .xls heredado como con el moderno formato .xlsx basado en xml. El soporte de .xls es posible con la librería libxls C, que abstrae muchas de las complejidades del formato binario subyacente. Para analizar .xlsx, utilizamos la biblioteca RapidXML C ++.

Se puede instalar así:

 install.packages("readxl") # CRAN version 

o

 devtools::install_github("hadley/readxl") # development version 

Uso

 library(readxl) # read_excel reads both xls and xlsx files read_excel("my-old-spreadsheet.xls") read_excel("my-new-spreadsheet.xlsx") # Specify sheet with a number or name read_excel("my-spreadsheet.xls", sheet = "data") read_excel("my-spreadsheet.xls", sheet = 2) # If NAs are represented by something other than blank cells, # set the na argument read_excel("my-spreadsheet.xls", na = "NA") 

* no es estrictamente cierto, requiere el paquete Rcpp , que a su vez requiere Rtools (para Windows) o Xcode (para OSX), que son dependencias externas a R. Pero no requieren ningún toque de ruta, etc., entonces eso es una ventaja sobre las dependencias de Java y Perl.

Actualización Ahora está el paquete rexcel . Esto promete obtener formato de Excel, funciones y muchos otros tipos de información del archivo Excel y en R.

Es posible que también desee probar el paquete XLConnect. He tenido mejor suerte que xlsx (y además puede leer archivos .xls).

 library(XLConnect) theData <- readWorksheet(loadWorkbook("C:/AB_DNA_Tag_Numbers.xlsx"),sheet=1) 

Además, si tiene problemas para que su archivo no se encuentre, intente seleccionarlo con file.choose ().

Definitivamente probaría la función read.xls en el paquete gdata , que es considerablemente más maduro que el paquete xlsx . Puede requerir Perl …

Actualizar

Como la respuesta a continuación ahora está un poco desactualizada, me gustaría llamar la atención sobre el paquete readxl . Si la hoja de Excel está bien formateada / tendida, entonces ahora usaré readxl para leerla en el libro de trabajo. Si las hojas están mal formateadas / extendidas, seguiría exportando a CSV y luego manejaría los problemas en R, ya sea a través de read.csv() o plain readLines() .

Original

Mi forma preferida es guardar hojas de Excel individuales en archivos de valores separados por comas (CSV). En Windows, estos archivos están asociados con Excel por lo que no pierde la “característica” de doble clic en abrir en Excel.

Los archivos CSV se pueden leer en R usando read.csv() , o, si se encuentra en una ubicación o usando una computadora configurada con algunos ajustes europeos (donde , se usa como el lugar decimal), usando read.csv2() .

Estas funciones tienen valores predeterminados razonables que hacen que la lectura de archivos con el formato adecuado sea simple. Simplemente conserve cualquier etiqueta para muestras o variables en la primera fila o columna.

Los beneficios adicionales de almacenar archivos en CSV son que, como los archivos son de texto plano, se pueden pasar fácilmente y puede estar seguro de que se abrirán en cualquier lugar; uno no necesita Excel para mirar o editar los datos.

Ejemplo 2012:

 library("xlsx") FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F) SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F) 
  • Yo probaría el paquete 'xlsx' porque es fácil de manejar y parece lo suficientemente maduro
  • funcionó bien para mí y no necesitaba ningún complemento como Perl o lo que sea

Ejemplo 2015:

 library("readxl") FirstTable <- read_excel("MyExcelFile.xlsx", 1) SecondTable <- read_excel("MyExcelFile.xlsx", 2) 
  • hoy en día uso readxl y he tenido una buena experiencia con él.
  • no se necesitan materiales adicionales
  • Buen rendimiento

Este nuevo paquete se ve bien http://cran.r-project.org/web/packages/openxlsx/openxlsx.pdf No requiere rJava y está usando ‘Rcpp’ para la velocidad.

Recientemente descubrí la función de Schaun Wheeler para importar archivos de Excel en R después de darse cuenta de que el paquete xlxs no se había actualizado para R 3.1.0.

https://gist.github.com/schaunwheeler/5825002

El nombre de archivo debe tener la extensión “.xlsx” y el archivo no se puede abrir cuando ejecuta la función.

Esta función es realmente útil para acceder al trabajo de otras personas. Las principales ventajas sobre el uso de la función read.csv son cuando

  • Importación de múltiples archivos de Excel
  • Importación de archivos de gran tamaño
  • Archivos que se actualizan regularmente

El uso de la función read.csv requiere la apertura y el guardado manual de cada documento de Excel que consume mucho tiempo y es muy aburrido. Usar la función de Schaun para automatizar el flujo de trabajo es, por lo tanto, una ayuda enorme.

Grandes apoyos para Schaun por esta solución.

Si se encuentra con el mismo problema y R le está dando un error, no pudo encontrar la función “.jnew” – Simplemente instale la biblioteca rJava. O si ya lo tienes, ejecuta la biblioteca de líneas (rJava). Ese debería ser el problema.

Además, debe quedar claro para todos que es más fácil trabajar con archivos csv y txt, pero la vida no es fácil ya veces solo tiene que abrir un xlsx.

¿Cuál es tu sistema operativo? ¿Qué versión de R estás ejecutando: 32 bits o 64 bits? ¿Qué versión de Java tienes instalada?

Tuve un error similar cuando comencé a usar la función read.xlsx() y descubrí que mi problema (que puede o no estar relacionado con el tuyo, como mínimo, esta respuesta debe verse como “prueba esto también”) estaba relacionado con la incompatibilidad de .xlsx pacakge con Java de 64 bits. Estoy bastante seguro de que el paquete .xlsx requiere Java de 32 bits.

Use R de 32 bits y asegúrese de que esté instalado Java de 32 bits. Esto puede abordar su problema.

Ha comprobado que R es realmente capaz de encontrar el archivo, por ejemplo, file.exists (“C: /AB_DNA_Tag_Numbers.xlsx”)? – Ben Bolker 14 de agosto de 2011 a las 23:05

El comentario anterior debería haber resuelto tu problema:

 require("xlsx") read.xlsx("filepath/filename.xlsx",1) 

debería funcionar bien después de eso.

Para mí, el paquete openxlx funcionó de la manera más fácil.

 install.packages("openxlsx") library(openxlsx) rawData<-read.xlsx("your.xlsx"); 

Puede guardar varias tabs y más información de formato si exporta a un archivo de hoja de cálculo de OpenDocument ( ods ) o un formato de Excel anterior e lo importa con el lector de ODS o el lector de Excel que mencionó anteriormente.

Como lo expresson muchos aquí, estoy escribiendo lo mismo pero con un punto adicional.

Primero, debemos asegurarnos de que nuestro R Studio tenga instalados estos dos paquetes:

  1. “readxl”
  2. “XLConnect”

Para cargar un paquete en R, puede usar la siguiente función:

 install.packages("readxl/XLConnect") library(XLConnect) search() 

búsqueda mostrará la lista de paquetes actuales que están disponibles en su R Studio.

Ahora otro truco, aunque es posible que tenga estos dos paquetes, pero aún así puede encontrar un problema al leer el archivo “xlsx” y el error podría ser como “error: más columnas que el nombre de la columna”

Para resolver este problema, simplemente puede volver a guardar su hoja de Excel “xlsx” en

“CSV (delimitado por comas)”

y tu vida será muy fácil …

¡¡Que te diviertas!!

He intentado muy duro con todas las respuestas anteriores. Sin embargo, en realidad no ayudaron porque utilicé un mac. La biblioteca de rio tiene esta función de importación que básicamente puede importar cualquier tipo de archivo de datos en Rstudio , ¡incluso aquellos archivos que usan otros idiomas además del inglés!

Pruebe los códigos a continuación:

  library(rio) AB <- import("C:/AB_DNA_Tag_Numbers.xlsx") AB <- AB[,1] 

Espero que esto ayude. Para una referencia más detallada: https://cran.r-project.org/web/packages/rio/vignettes/rio.html