Comment lire un fichier Excel directement dans R? Ou devrais-je d'abord exporter les données dans un fichier texte ou CSV et importer ce fichier dans R?
Réponses
Trop de publicités?Permettez-moi de répéter ce que @Chase recommandé: Utiliser XLConnect.
Les raisons pour l'utilisation de XLConnect sont, à mon avis:
- Multi-plateforme. XLConnect est écrit en Java et, ainsi, sera exécuté sur windows, Linux, Mac avec aucun changement de votre R code (à l'exception peut-être des chaînes de chemin d'accès)
- Rien d'autre à charger. Il suffit d'installer XLConnect et commencer à vivre.
- Il faut vous concentrer sur la lecture de fichiers Excel, mais XLConnect également écrire des fichiers Excel, y compris la modification de mise en forme de cellule. Et il va le faire à partir de Linux ou de Mac, pas seulement de Gagner.
XLConnect est un peu nouveau par rapport à d'autres solutions, donc il est moins souvent mentionné dans les messages du blog de référence et de documentation. Pour moi, ça a été très utile.
Oui. Voir la page correspondante sur le R wiki. Réponse courte: read.xls
de la gdata
package fonctionne la plupart du temps (bien que vous devez avoir installé de Perl sur votre système (généralement déjà vrai sur MacOS et Linux, mais prend une étape supplémentaire sur Windows, c'est à dire voir http://strawberryperl.com/). Il existe plusieurs mises en garde, et des solutions de rechange, qui est cotée sur le R page wiki.
La seule raison pour laquelle je ne vois pas à le faire directement, c'est que vous pourriez vouloir examiner la feuille de calcul pour voir si elle a des problèmes d'affichage (bizarre, en-têtes, plusieurs feuilles de calcul [vous pouvez lire un à la fois, bien que vous pouvez bien évidemment faire une boucle sur tous], inclus parcelles, etc.). Mais pour un bien formée, rectangulaire feuille de calcul avec la plaine de chiffres et de données de caractère (c'est à dire, pas de virgule format des nombres, des dates, des formules avec une division par zéro, les erreurs, les valeurs manquantes, etc. etc. ..) En général, je n'ai aucun problème avec ce processus.
Je l'ai utilisé, xlsx
package. Il a changé mon flux de travail avec Excel et R. Pas plus ennuyeux pop-ups demander, si je suis sûr que je veux sauver ma feuille Excel .format txt. Le paquet a également écrit des fichiers Excel.
Cependant, je trouve read.xlsx
fonction lente, lors de l'ouverture de gros fichiers Excel. read.xlsx2
fonction est beaucoup plus rapide, mais ne pas quess la classe vector de données.cadre de colonnes. Vous devez utiliser colClasses
de commande pour spécifier la colonne désirée classes, si vous utilisez read.xlsx2
fonction. Voici un exemple pratique:
read.xlsx("filename.xlsx", 1)
lit de votre fichier et rend les données.image de la colonne de classes presque utile, mais il est très lent pour de grands ensembles de données. Fonctionne aussi pour .xls
fichiers.
read.xlsx2("filename.xlsx", 1)
est plus rapide, mais vous aurez à définir la colonne classes manuellement. Un raccourci pour exécuter la commande deux fois (voir l'exemple ci-dessous). character
spécification convertit vos colonnes à des facteurs. Utiliser Date
et POSIXct
options pour le moment.
coln <- function(x){y <- rbind(seq(1,ncol(x))); colnames(y) <- colnames(x)
rownames(y) <- "col.number"; return(y)} # A function to see column numbers
data <- read.xlsx2("filename.xlsx", 1) # Open the file
coln(data) # Check the column numbers you want to have as factors
x <- 3 # Say you want columns 1-3 as factors, the rest numeric
data <- read.xlsx2("filename.xlsx", 1, colClasses= c(rep("character", x),
rep("numeric", ncol(data)-x+1)))
J'ai eu de la chance avec XLConnect
: http://cran.r-project.org/web/packages/XLConnect/index.html
library(RODBC)
file.name <- "file.xls"
sheet.name <- "Sheet Name"
## Connect to Excel File Pull and Format Data
excel.connect <- odbcConnectExcel(file.name)
dat <- sqlFetch(excel.connect, sheet.name, na.strings=c("","-"))
odbcClose(excel.connect)
Personnellement, j'aime RODBC et je peux le recommander.