web-dev-qa-db-ja.com

GdataパッケージのPerlの問題

ExcelスプレッドシートをデータフレームとしてRにインポートする2分間の簡単なビデオチュートリアルを実行しようとしています。 http://www.screenr.com/QiN8

私は、Win 7 PCにStrawberry Perl(32ビット)をダウンロードしてインストールすること、Rを作業ディレクトリにポイントすること、Rに次のコマンドを入力することなど、各手順を実行しました。

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

私はこのエラーを受け取ります:

FindPerl(verbose = verbose)のエラー:Perl実行可能ファイルが見つかりません。 Perl =引数を使用して正しいパスを指定します。 file.exists(tfn)のエラー:無効な 'file'引数

更新:

マシンをリセットし、パスをPerlに設定します。

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

次に、次のコマンドを入力しました。

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

コマンドラインが次のエラーを返しました:

Xls2sep(xls、sheet、verbose = verbose、...、method = method、のエラー:中間ファイル 'C:\ Users\AEID\AppData\Local\Temp\RtmpoXMywa\file18e45ed513c.csv'がありません!さらに:警告メッセージ:コマンド '"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:\ Users\AEID\AppData\Local\Temp\RtmpoXMywa\file18e45ed513c.csv "" 1 "のステータスが2だったfile.exists(tfn)でエラーが発生:無効な 'file'引数

何が悪いのですか?

よろしくお願いします!

AME

17
AME

library(gdata)を使用してgdataパッケージをロードすると、次のように明確に示されます。

gdata:read.xls()は、Excel XLSおよびXLSXファイルを読み取ることができません。

したがって、有効なPerlインタープリターへのPATHが必要です。この場合のようにウィンドウを使用して、必要なPerlインタープリターを見つけるためにプロパティーをチェックする必要があります。

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

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

複数のXLSファイルの場合:

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

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

verbose = TRUE、各ファイルの最後に読み取ります:

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

他のいくつかの回答がすでに言っているように、問題はPerl.exeが欠落していることです。私の場合、それは次の場所からインストールした後に機能しました: http://www.activestate.com/activeperl/downloads そして、それをポイントします:

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

私の場合、私は同様のメッセージを受け取りました:

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

ExcelとRの両方で同時に開くことができないExcelテーブルを閉じることで解決策を見つけました。

0
Ensheng Dong

パス変数の名前が「Perl」ではないことを確認してください。名前をprlに変更して成功しました!

これは機能しませんでした:

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

これでうまくいきます!

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

次のスクリプトを実行してPCを再起動すると、問題は解消しました。

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

私も同じ問題に遭遇し、「xls2sepのエラー」と1時間戦っていました。イチゴを再インストールするために、動作しません。

私はついにExcelファイルが壊れていることを知りました。 「xls2sepのエラー」は、ファイルが壊れていることを意味するようです。

0
Ning Chen

あなたはこの構文を試すことができます:

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

ここでこの解決策を見つけました

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

0
Yoni

私は自分でこの問題に遭遇し、最終的に犯人を見つけました。私の最初のコードでは、4シートのExcelファイルを使用していて、4枚目のシート(read.xls(con、Perl = prl、sheet = 4))を操作していました。新しいxlxsファイルに1つのシートがあり、エラーが発生しました。

0
dougie_g

最近、Windows 10でgdataパッケージとStrawberry Perlソフトウェアに同じ問題が発生しました。私の解決策は次のとおりです。(1)古いバージョンのStrawberry Perlをアンインストールします-インストールしようとした場合古いバージョンの上に新しいバージョンがあり、アップグレードできないと書かれています。(2)これからダウンロードした新しいバージョンをインストールします link to C:/Strawberry/、(3)add C:/Strawberry/Perl/bin/Perl.exe to 「環境変数」ウィンドウのユーザー変数の「パス」。

0
Vladimir S.

Rはxlsまたはxlsxファイルを検索していますが、見つかりません。そのため、Excelファイルが置かれている作業ディレクトリ(setwd("C:\....")など)を設定し、次のスクリプト形式のいずれかを実行します。

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