Por favor, ¿alguien puede ayudarme sobre la mejor manera de importar un archivo de Excel 2007 (.xlsx) en R. He probado varios métodos y ninguno parece funcionar? He actualizado 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 me sale 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.
.csv
.file.exists("C:/AB_DNA_Tag_Numbers.xlsx")
?Respuestas:
Para una solución que está libre de dependencias externas complicadas *, ahora hay
readxl
: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
Rcpp
paquete , que a su vez requiere Rtools (para Windows) o Xcode (para OSX), que son dependencias externas a R. Pero no requieren ninguna manipulación con rutas, etc., así que eso es un ventaja sobre las dependencias de Java y Perl.Actualización Ahora existe el paquete rexcel . Esto promete obtener formato de Excel, funciones y muchos otros tipos de información del archivo de Excel y en R.
fuente
También puede probar el paquete XLConnect. He tenido mejor suerte con él que xlsx (además, también puede leer archivos .xls).
library(XLConnect) theData <- readWorksheet(loadWorkbook("C:/AB_DNA_Tag_Numbers.xlsx"),sheet=1)
Además, si tiene problemas porque no se encuentra su archivo, intente seleccionarlo con file.choose ().
fuente
readWorksheet(loadWorkbook(...))
hacerlo, puede hacer lo mismo de forma un poco más sucinta conreadWorksheetFromFile(...)
.Definitivamente probaría la
read.xls
función en elgdata
paquete, que es considerablemente más madura que elxlsx
paquete. Puede requerir Perl ...fuente
Actualizar
Como la respuesta a continuación ahora está algo desactualizada, solo llamaría la atención sobre el paquete readxl . Si la hoja de Excel está bien formateada / colocada , ahora usaría readxl para leer el libro de trabajo. Si las hojas están mal formateadas / colocadas, todavía exportaría a CSV y luego manejaría los problemas en R, ya sea a través
read.csv()
o simplemente antiguoreadLines()
.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 para que no pierda la "función" de doble clic para abrir en Excel.
Los archivos CSV se pueden leer en R usando
read.csv()
, o, si está en una ubicación o usando una computadora configurada con algunas configuraciones europeas (donde,
se usa como el lugar decimal), usandoread.csv2()
.Estas funciones tienen valores predeterminados sensibles que facilitan la lectura de archivos con el formato adecuado. Simplemente mantenga las etiquetas de las muestras o variables en la primera fila o columna.
Los beneficios adicionales de almacenar archivos en CSV son que, dado que los archivos son de texto sin formato, se pueden pasar muy fácilmente y puede estar seguro de que se abrirán en cualquier lugar; no se necesita Excel para ver o editar los datos.
fuente
read.xlsx()
y tiene las últimas versiones de ese paquete y R, envíe un correo electrónico al encargado del paquete para informar un error potencial.Ejemplo 2012:
library("xlsx") FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F) SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F)
Ejemplo 2015:
library("readxl") FirstTable <- read_excel("MyExcelFile.xlsx", 1) SecondTable <- read_excel("MyExcelFile.xlsx", 2)
readxl
y he tenido una buena experiencia con él.fuente
Este nuevo paquete se ve bien http://cran.r-project.org/web/packages/openxlsx/openxlsx.pdf No requiere rJava y usa 'Rcpp' para mayor velocidad.
fuente
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 tiene, simplemente ejecute la biblioteca de líneas (rJava). Ese debería ser el problema.
Además, debería quedar claro para todos que es más fácil trabajar con archivos csv y txt, pero la vida no es fácil y, a veces, solo tienes que abrir un xlsx.
fuente
gdata
el mensaje de iniciogdata: read.xls support for 'XLSX' (Excel 2007+) files ENABLED.
Me parece que debería abrir archivos xlsx, aunque es cierto que no lo he probado recientemente ...gdata
versión 2.8.2 leexlsx
archivos con laread.xls
función.Recientemente descubrí la función de Schaun Wheeler para importar archivos de Excel a R después de darme cuenta de que el paquete xlxs no se había actualizado para R 3.1.0.
https://gist.github.com/schaunwheeler/5825002
El nombre del 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
El uso de la función read.csv requiere abrir y guardar manualmente cada documento de Excel, lo que consume mucho tiempo y es muy aburrido. Por lo tanto, usar la función de Schaun para automatizar el flujo de trabajo es una gran ayuda.
Grandes apoyos para Schaun por esta solución.
fuente
Para mí, el paquete openxlx funcionó de la manera más fácil.
install.packages("openxlsx") library(openxlsx) rawData<-read.xlsx("your.xlsx");
fuente
¿Cuál es tu sistema operativo? ¿Qué versión de R está ejecutando: 32 bits o 64 bits? ¿Qué versión de Java tienes instalada?
Tuve un error similar cuando comencé a usar la
read.xlsx()
función y descubrí que mi problema (que puede o no estar relacionado con el suyo; como mínimo, esta respuesta debe verse como "pruebe 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.Utilice R de 32 bits y asegúrese de que Java de 32 bits esté instalado. Esto puede solucionar su problema.
fuente
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.
fuente
Es posible que pueda mantener varias pestañas 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 y lo importa con el lector de ODS o el lector de Excel que mencionó anteriormente.
fuente
Como han dicho muchos aquí, estoy escribiendo lo mismo pero con un punto adicional.
Primero debemos asegurarnos de que nuestro R Studio tenga estos dos paquetes instalados:
Para cargar un paquete en R, puede usar la siguiente función:
install.packages("readxl/XLConnect") library(XLConnect) search()
La búsqueda mostrará la lista de paquetes actuales que están disponibles en su R Studio.
Ahora, otro problema, aunque es posible que tenga estos dos paquetes, pero aún puede encontrar problemas 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
y tu vida será super fácil ....
¡¡Que te diviertas!!
fuente
Me he esforzado mucho en todas las respuestas anteriores. Sin embargo, en realidad no ayudaron porque usé una mac. La biblioteca de rio tiene esta función de importación que básicamente puede importar cualquier tipo de archivo de datos a Rstudio , ¡incluso aquellos archivos que usan idiomas distintos al inglés!
Pruebe los siguientes códigos:
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
fuente