web-dev-qa-db-fra.com

Paquet Gdata numéro Perl

J'essaie de suivre ce didacticiel vidéo simple de 2 minutes sur l'importation d'une feuille de calcul Excel dans R en tant que bloc de données: http://www.screenr.com/QiN8

J'ai suivi chaque étape, y compris le téléchargement et l'installation de Strawberry Perl (32 bits) sur mon ordinateur Win 7, en pointant R sur mon répertoire de travail et en entrant la commande suivante dans R: 

Spreadsheet <- read.xls("targetspreadsheet.xls")

Je reçois cette erreur: 

Erreur dans findPerl (verbose = verbose): Exécutable Perl non trouvé. Utilisez Perl = argument pour spécifier le chemin correct . Erreur dans file.exists (tfn): argument 'fichier' invalide

Mettre à jour: 

Je réinitialise ma machine et définit le chemin d'accès à Perl:

Perl <- "C:/strawberry/Perl/bin/Perl.exe"

Puis j'ai entré cette commande:

DF <- read.xls("spreadsheet.xls", Perl = Perl)

La ligne de commande a renvoyé cette erreur:

Erreur dans xls2sep (xls, feuille, verbose = verbose, ..., méthode = méthode,: Fichier intermédiaire 'C:\Utilisateurs\AEID\AppData\Local\Temp\RtmpoXMywa\fichier18e45ed513c.csv' manquant! .__ En outre: Message d’avertissement: Commande en cours '"C:\STRAWB ~ 1\Perl\bin\Perl.exe" "C: /Users/AEID/Documents/R/win-library/2.15/gdata/Perl /xls2csv.pl "" GFT_show_wip_report (42) .xls "" C:\Utilisateurs\AEID\AppData\Local\Temp\RtmpoXMywa\file18e45ed513c.csv "" 1 "'avait le statut 2 Erreur dans le fichier.exists (tfn ): argument 'fichier' invalide

Qu'est-ce que je fais mal? 

Merci d'avance pour votre aide!

AME

17
AME

Après avoir chargé le paquet gdata en utilisant library(gdata), il est clairement indiqué: 

gdata: read.xls () ne pourra pas lire les fichiers Excel XLS et XLSX gdata: à moins que l'argument 'Perl =' soit utilisé pour spécifier l'emplacement de un gdata: intrpreter Perl valide.

Donc, vous avez besoin de PATH pour l’interprète Perl valide. En utilisant Windows, comme c’est le cas ici, vous devez vérifier les propriétés pour localiser l’interpréteur Perl requis.

#set the PATH to Perl interpreter
Perl <- "C:/strawberry/Perl/bin/Perl5.18.2.exe"

try1file <- read.xls("my.one.filename.xls", Perl = Perl)

Pour plusieurs fichiers xls:

> length(list.files())
[1] 65

try65files <- lapply(list.files(), ..., Perl = Perl) 

Si verbose = TRUE, à la fin de chaque fichier, il sera écrit:

Loading 'F65.xls'...
Done.
Orignal Filename: F65.xls
Number of Sheets: 1
Writing sheet number 1 ('Sheet1') to file 'C:\Users\FRANKL~1.JOH\AppData\Local\Temp\RtmpeKs3fi\file13dc750950e4.csv'
Minrow=0 Maxrow=32 Mincol=0 Maxcol=16
  (Ignored 0 blank lines.)
0 
Done.
Reading csv file  “C:\Users\FRANKL~1.JOH\AppData\Local\Temp\RtmpeKs3fi\file13dc750950e4.csv” ...
Done.
8
user2502338

Comme d'autres réponses le disent déjà, le problème est que Perl.exe est manquant. Dans mon cas, cela a fonctionné après l'avoir installé à partir de: http://www.activestate.com/activeperl/downloads , Puis pointez dessus:

    read.xls("bla.xlsx", Perl = "C:\\Perl64\\bin\\Perl.exe")
5

Dans mon cas, j'ai eu le même message:

Error in xls2sep(xls, sheet, verbose = verbose, ..., method = method,  : 
  Intermediate file 'C:\Users\dddd\AppData\Local\Temp\Rtmp6DG4Cr\file1ce018647411.csv' missing!
In addition: Warning message:
running command '"C:\Perl64\bin\Perl52~1.EXE" "C:/Users/dddd/Documents/R/win-library/3.4/gdata/Perl/xls2csv.pl"  "D:/dddd/mlj/Results/xxxx.xlsx" "C:\Users\dddd\AppData\Local\Temp\Rtmp6DG4Cr\file1ce018647411.csv" "1"' had status 13 
Error in file.exists(tfn) : invalid 'file' argument

J'ai trouvé la solution en fermant le tableau Excel, qui ne peut être ouvert à la fois par Excel et par R.

0
Ensheng Dong

Assurez-vous que votre variable de chemin N'EST PAS nommée "Perl". Je l'ai renommé prl et succès!

Cela n'a pas fonctionné:

Perl <- "C:/Strawberry/Perl/bin/Perl.exe"
Excel_gdata <- read.xls(url_xls, Perl)

Error in findPerl(verbose = verbose) : 
  Perl executable not found. Use Perl= argument to specify the correct path.
Error in file.exists(tfn) : invalid 'file' argument

Cela marche!

prl <- "C:/Strawberry/Perl/bin/Perl.exe"
Excel_gdata <- read.xls(url_xls, prl)
0
Jas

Le problème a disparu après avoir exécuté le script suivant et redémarré le PC:

library(gdata)
installXLSXsupport(Perl = 'C:\\strawberry\\Perl\\bin\\Perl.exe')
0
Igor Krupitsky

Je rencontre également le même problème et je me suis battu avec "erreur dans xls2sep" pendant 1 heure ... pour réinstaller la fraise, cela ne fonctionne pas.

J'ai finalement découvert que le fichier Excel était cassé. "erreur dans xls2sep" semble signifier que le fichier est cassé.

Ning

0
Ning Chen

Vous pouvez essayer ce code:

T<-read.xls("Template.xlsx", Perl = "C:\\Perl\\bin\\Perl.exe")

J'ai trouvé cette solution ici

http://cran.r-project.org/web/packages/gdata/INSTALL

0
Yoni

J'ai rencontré ce problème moi-même et j'ai finalement trouvé le coupable. Dans mon code initial, je travaillais avec un fichier Excel avec 4 feuilles et fonctionnais sur la 4e feuille - Read.xls (con, Perl = prl, feuille = 4). Mon nouveau fichier xlxs avait une feuille, provoquant l'erreur. 

0
dougie_g

J'ai récemment eu le même problème avec le paquet gdata et le logiciel Strawberry Perl sous Windows 10. La solution dans mon cas est la suivante: (1) désinstaller une ancienne version de Strawberry Perl - si vous essayez d'installer une nouvelle version par-dessus l'ancienne une, elle indique qu’elle ne peut pas être mise à niveau, (2) installez une nouvelle version téléchargée depuis ce link to C:/Strawberry/, (3) ajoutez C:/Strawberry/Perl/bin/Perl.exe à 'Path' dans les variables utilisateur de la fenêtre Variables d’environnement.

0
Vladimir S.

R recherche le fichier xls ou xlsx, mais ne le trouve pas. Définissez donc le répertoire de travail dans lequel se trouve votre fichier Excel (par exemple, setwd("C:\....")) et exécutez l’un des formats de script suivants:

read.xls("Potato.xls", Perl = "C:\\Strawberry\\Perl\\bin\\Perl.exe")
read.xls("Tomato.xls", Perl = "C:\\Strawberry\\Perl\\bin\\Perl.exe")
read.xls("Potato.xlsx", Perl = "C:/Strawberry/Perl/bin/Perl.exe")
read.xls("Tomato.xlsx", Perl = "C:/Strawberry/Perl/bin/Perl.exe")
0
user4625318