S'il vous plaît, quelqu'un peut-il m'aider à choisir le meilleur moyen d'importer un fichier Excel 2007 (.xlsx) dans R. J'ai essayé plusieurs méthodes et aucune ne semble fonctionner. J'ai mis à niveau vers la version 2.13.1, Windows XP, xlsx 0.3.0, je ne sais pas pourquoi l'erreur persiste. J'ai essayé:
AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx","DNA_Tag_Numbers")
OR
AB<-read.xlsx("C:/AB_DNA_Tag_Numbers.xlsx",1)
mais j'obtiens l'erreur:
Error in .jnew("Java/io/FileInputStream", file) :
Java.io.FileNotFoundException: C:\AB_DNA_Tag_Numbers.xlsx (The system cannot find the file specified)
Je vous remercie.
Pour une solution dépourvue de dépendances externes * complexes, il existe maintenant readxl
:
Le package readxl facilite l'extraction de données dans Excel et R. Les comparés à de nombreux packages existants (par exemple, gdata, xlsx, xlsReadWrite), readxl n'a pas de dépendances externes et est donc facile à installer et à utiliser sur tous les systèmes d'exploitation. Il est conçu pour fonctionner avec des données tabulaires stockées dans une seule feuille.
Readxl prend en charge le format hérité .xls et le format .xlsx moderne basé sur xml. La prise en charge .xls est rendue possible grâce à la bibliothèque C libxls, qui élimine bon nombre des complexités du format binaire sous-jacent. Pour analyser .xlsx, nous utilisons la bibliothèque RapidXML C++.
Il peut être installé comme suit:
install.packages("readxl") # CRAN version
ou
devtools::install_github("hadley/readxl") # development version
Usage
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")
* pas tout à fait vrai, il nécessite le Rcpp
package , qui à son tour nécessite Rtools (pour Windows) ou Xcode (pour OSX), qui sont des dépendances externes à R. Mais ils ne nécessitent aucune manipulation. chemins, etc., donc c'est un avantage par rapport à Java et aux dépendances Perl.
Update Il existe maintenant le package rexcel . Cela promet d’obtenir le formatage Excel, les fonctions et de nombreux autres types d’informations à partir du fichier Excel et dans R.
Vous voudrez peut-être aussi essayer le package XLConnect. J'ai eu plus de chance avec cela que xlsx (en plus, il peut aussi lire les fichiers .xls).
library(XLConnect)
theData <- readWorksheet(loadWorkbook("C:/AB_DNA_Tag_Numbers.xlsx"),sheet=1)
de plus, si vous rencontrez des problèmes avec votre fichier introuvable, essayez de le sélectionner avec file.choose ().
Je voudrais certainement essayer la fonction read.xls
dans le package gdata
, qui est considérablement plus mature que le package xlsx
. Cela peut nécessiter Perl ...
La réponse ci-dessous étant maintenant quelque peu dépassée, je voudrais simplement attirer l’attention sur le paquet readxl. Si la feuille de calcul Excel est bien formatée, je voudrais maintenant utiliser readxl pour lire à partir du classeur. Si les feuilles sont mal formatées/restituées, j’exporterais quand même au format CSV, puis réglerais les problèmes liés à R via read.csv()
ou tout simplement readLines()
.
Ma méthode préférée consiste à enregistrer des feuilles Excel individuelles dans des fichiers CSV (valeurs séparées par des virgules). Sous Windows, ces fichiers sont associés à Excel pour que vous ne perdiez pas la "fonctionnalité" de double-clic-ouvrir-dans-Excel.
Les fichiers CSV peuvent être lus dans R à l'aide de read.csv()
ou, si vous vous trouvez dans un emplacement ou à l'aide d'un ordinateur configuré avec certains paramètres européens (où ,
est utilisé comme position décimale), à l'aide de read.csv2()
.
Ces fonctions ont des valeurs par défaut sensibles qui facilitent la lecture de fichiers correctement formatés. Il suffit de garder les étiquettes pour les échantillons ou les variables dans la première ligne ou la première colonne.
Le stockage de fichiers au format CSV offre l’avantage supplémentaire que, comme les fichiers sont en texte brut, ils peuvent être échangés très facilement et que vous pouvez être sûr qu’ils s’ouvriront n’importe où; on n'a pas besoin d'Excel pour regarder ou éditer les données.
Exemple 2012:
library("xlsx")
FirstTable <- read.xlsx("MyExcelFile.xlsx", 1 , stringsAsFactors=F)
SecondTable <- read.xlsx("MyExcelFile.xlsx", 2 , stringsAsFactors=F)
Exemple 2015:
library("readxl")
FirstTable <- read_Excel("MyExcelFile.xlsx", 1)
SecondTable <- read_Excel("MyExcelFile.xlsx", 2)
readxl
et j'en ai fait une bonne expérience.Ce nouveau paquet a l'air bien http://cran.r-project.org/web/packages/openxlsx/openxlsx.pdf Il ne nécessite pas rJava et utilise 'Rcpp' pour sa rapidité.
Si vous rencontrez le même problème et que R vous renvoie une erreur - impossible de trouver la fonction ".jnew" - Installez simplement la bibliothèque rJava. Ou si vous l'avez déjà, lancez simplement la bibliothèque de lignes (rJava). Cela devrait être le problème.
En outre, il devrait être clair pour tout le monde que les fichiers csv et txt sont plus faciles à utiliser, mais que la vie n’est pas facile et qu’il suffit parfois d’ouvrir un fichier xlsx.
J'ai récemment découvert la fonction d'importation de fichiers Excel dans R de Schaun Wheeler après avoir réalisé que le paquet xlxs n'avait pas été mis à jour pour R 3.1.0.
https://Gist.github.com/schaunwheeler/5825002
Le nom de fichier doit avoir l'extension ".xlsx" et le fichier ne peut pas être ouvert lorsque vous exécutez la fonction.
Cette fonction est vraiment utile pour accéder au travail d’autres peuples. Les principaux avantages par rapport à l’utilisation de la fonction read.csv sont les suivants:
L'utilisation de la fonction read.csv nécessite l'ouverture et la sauvegarde manuelles de chaque document Excel, ce qui prend du temps et est très ennuyeux. Utiliser la fonction de Schaun pour automatiser le flux de travail est donc une aide considérable.
Gros accessoires à Schaun pour cette solution.
Pour moi, le paquet openxlx a fonctionné de la manière la plus simple.
install.packages("openxlsx")
library(openxlsx)
rawData<-read.xlsx("your.xlsx");
Vous avez vérifié que R est effectivement en mesure de trouver le fichier, par exemple. fichier.existe ("C: /AB_DNA_Tag_Numbers.xlsx")? - Ben Bolker, le 14 août à 23h05
Le commentaire ci-dessus aurait dû résoudre votre problème:
require("xlsx")
read.xlsx("filepath/filename.xlsx",1)
devrait bien fonctionner après cela.
Quel est votre système d'exploitation? Quelle version de R utilisez-vous: 32 bits ou 64 bits? Quelle version de Java avez-vous installée?
J'ai eu une erreur similaire lorsque j'ai commencé à utiliser la fonction read.xlsx()
et j'ai découvert que mon problème (qui peut ou non être lié au vôtre; au minimum, cette réponse doit être considéré comme "essayez ceci aussi") était liée à l'incompatibilité de .xlsx pacakge avec Java 64 bits. Je suis à peu près certain que le package .xlsx nécessite Java 32 bits.
Utilisez R 32 bits et assurez-vous que Java 32 bits est installé. Cela peut résoudre votre problème.
J'ai essayé très fort sur toutes les réponses ci-dessus. Cependant, ils ne m'ont pas vraiment aidé parce que j'ai utilisé un mac. La bibliothèque rio possède cette fonction d’importation qui permet d’importer tout type de fichier de données dans Rstudio , même ceux utilisant des langues autres que l'anglais!
Essayez les codes ci-dessous:
library(rio)
AB <- import("C:/AB_DNA_Tag_Numbers.xlsx")
AB <- AB[,1]
J'espère que cette aide. Pour une référence plus détaillée: https://cran.r-project.org/web/packages/rio/vignettes/rio.html
Vous pourrez peut-être conserver plusieurs onglets et davantage d'informations de formatage si vous exportez dans un fichier Spreadsheet OpenDocument ( ods ) ou dans un format Excel plus ancien et importez-le avec le lecteur ODS ou le lecteur Excel que vous avez mentionné ci-dessus.
Comme beaucoup l'ont dit ici, j'écris la même chose mais avec un point supplémentaire!
Au début, nous devons nous assurer que nos deux packages sont installés dans notre R Studio:
Pour charger un paquet dans R, vous pouvez utiliser la fonction ci-dessous:
install.packages("readxl/XLConnect")
library(XLConnect)
search()
search affichera la liste des paquetages actuellement disponibles dans votre R Studio.
Maintenant un autre problème, même si vous pouvez avoir ces deux paquets mais que vous pouvez quand même rencontrer un problème lors de la lecture du fichier "xlsx" et que l'erreur pourrait ressembler à "erreur: plus de colonnes que nom de colonne"
Pour résoudre ce problème, vous pouvez simplement réenregistrer votre feuille Excel "xlsx" dans
"CSV (délimité par des virgules)"
et votre vie sera super facile ....
S'amuser!!