Я загрузил файл .RData (созданный с помощью save()
) на ftp-сервер, и я пытаюсь использовать getURL() для загрузки тот же файл. Для всех примеров и сообщений, которые я прочитал, я не могу заставить это работать.Загрузить .RData и .csv файлы с FTP с помощью RCurl (или любого другого метода)
.rdata файл был сохранен с помощью:
save(results, file=RDataFilePath, compress="xz") #save object "results" w/ compression
#RDataFilePath is the location of the results.RData file on my harddrive
Эти данные были загружены с помощью:
uploadURL <-"ftp://name:[email protected]/folder/results.RData" #name the url
ftpUpload(RDataFilePath, to=uploadURL, connecttimeout=120) #upload
Это, как я пытаюсь скачать results.RData с помощью getURL
:
downloadURL <- "host/folder/results.RData"
load(getURL(downloadURL, userpwd="name:password", connecttimeout=120))
который дает следующую информацию:
Error in curlPerform(curl = curl, .opts = opts, .encoding = .encoding) :
embedded nul in string: 'ý7zXZ'
Когда я вставляю строку downloadURL
в свой браузер, файл .RData загружается немедленно, поэтому я знаю, что нет опечатки. Сообщение об ошибке предполагает, что URL-адрес не может получить чтение b/c форматирования сжатия; однако я получаю подобное сообщение об ошибке, когда использую save()
без сжатия.
Я также получаю сообщение об ошибке при попытке загрузить файл CSV с FTP:
read.csv(getURL(downloadURL1)) #downloadURL1 is similar to downloadURL, but points to the .csv file
Error in file(file, "rt") : cannot open the connection
, а затем предупреждение, которое гласит In addition: Warning message: In file(file, "rt") : cannot open file
, а затем начинает перечислять содержимое .csv.
Я пытался понять это в течение большей части утра, и я чувствую, что мне не хватает чего-то действительно элементарного. Я предполагаю, что мне нужно изменить параметр curl, чтобы он знал, какой тип файла он будет читать. Мой синтаксис, вероятно, немного выключен, и я не правильно использую getURL, но я не уверен, что делать.
Любые советы были бы весьма признательны.
p.s. Мой текущий подход основан на этом Post
Этот метод работает для CSV-файла (я использовал 'test = getURL()' и 'read.csv (text = test)' Спасибо! все еще получают ошибку при попытке прочитать файл .RData «Ошибка в curlPerform (curl = curl, .opts = opts, .encoding = .encoding): embedded nul in string: 'ý7zXZ'. Когда я пытаюсь загрузить файл, он говорит, что он не может открыть URL-адрес. – rbatt
Вы используете систему unix? Если у вас есть функция завивки для использования в командной строке, вы можете попробовать что-то вроде системы («curl ftp: // xxxx temp.rData ") изнутри R. Если завиток не работает, может быть,« wget »будет работать? – kith
Я на OSX, мои коллеги будут в Windows. Я не очень далек от download.file, t подключиться к серверу Я использовал RCURL-пакет. Используя 'getBinaryURL()' я могу получить файл в двоичной форме, но это все тарабарщина, и я не могу понять, как его преобразовать. «raw» и save(), затем load() снова не преобразует его обратно в исходный объект R (или что-либо значимое). – rbatt