Проблема с пакетом perd Gdata
Я пытаюсь выполнить этот простой двухминутный видеоурок по импорту электронной таблицы Excel в R в качестве фрейма данных: http://www.screenr.com/QiN8
Я следил за каждым этапом, включая загрузку и установку Strawberry Perl (32-разрядной версии) на моем компьютере Win 7, указывающий R на мой рабочий каталог и вводя следующую команду в R:
Spreadsheet <- read.xls("targetspreadsheet.xls")
Я получаю эту ошибку:
Ошибка в findPerl (verbose = verbose): perl исполняемый файл не найден. Используйте perl = argument, чтобы указать правильный путь. Ошибка в файле .exists(tfn): неверный аргумент "file"
Обновление:
I reset моя машина и установите путь к 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 Ошибка в файле .exists(tfn): неверный аргумент "file"
Что я делаю неправильно?
Заранее благодарим за помощь!
АМЕ
Ответы
Ответ 1
После загрузки пакета gdata с помощью library(gdata)
он четко говорит:
gdata: read.xls() не сможет прочитать файлы Excel XLS и XLSX gdata: если аргумент 'perl =' не используется для указания местоположения gdata: действительный perl intrpreter.
Итак, вам нужен PATH для действительного интерпретатора perl.
Используя окна, как это имеет место здесь, вам нужно проверить свойства, чтобы найти требуемый интерпретатор 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.
Ответ 2
Как утверждают некоторые другие ответы, проблема в том, что отсутствует perl.exe. В моем случае он работал после того, как он был установлен из:
http://www.activestate.com/activeperl/downloads
и затем укажите на него:
read.xls("bla.xlsx", perl = "C:\\Perl64\\bin\\perl.exe")
Ответ 3
Я также встречаю ту же проблему и сражался с "ошибкой в xls2sep" в течение 1 часа.
для повторной установки клубники, не работает.
Наконец-то я узнал, что файл excel был сломан. "Ошибка в xls2sep", по-видимому, означает, что файл поврежден.
Нин
Ответ 4
Вы можете попробовать этот sytax:
T<-read.xls("Template.xlsx", perl = "C:\\Perl\\bin\\perl.exe")
Я нашел это решение здесь
http://cran.r-project.org/web/packages/gdata/INSTALL
Ответ 5
Я столкнулся с этим вопросом и, наконец, нашел виновника. В моем исходном коде я работал с файлом excel с 4 листами и работал на 4-м листе,
read.xls(con, perl = prl, sheet = 4). Мой новый файл xlxs имел один лист, вызывающий ошибку.
Ответ 6
R ищет файл xls или xlsx, но не находит его. Поэтому установите рабочий каталог, в котором находится ваш файл Excel (например, setwd("C:\....")
), и запустите любой из этих форматов script:
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")
Ответ 7
Убедитесь, что переменная path не указана как "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)
Ответ 8
Проблема исчезла после того, как я запустил следующий script и перезапустил компьютер:
library(gdata)
installXLSXsupport(perl = 'C:\\strawberry\\perl\\bin\\perl.exe')
Ответ 9
В моем случае я получил подобное сообщение:
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, которая не может быть открыта одновременно как Excel, так и R.