2017-12-06 2 views
0

Kürzlich war dieses Problem aufgetreten. Ich ziehe von einem FTP auf einem bi-monatlichen Zeitplan in R einer URL-Zeichenfolge als solche unter Verwendung von:R Ziehen von FTP startet fehlgeschlagen

url <- "ftp://User:[email protected]/"

verwende ich RCurl Syntax zu ziehen, um Namen zu füllen und dann durch jeden Namen Schleife, mit read.csv mit einer URL ziehen als solche:

myData <- read.csv("ftp://User:[email protected]/mycsv.csv")

Das funktionierte vor zwei Monaten, aber heute versagt hat begonnen. Es könnte möglicherweise etwas in meinem FTP geändert hat, aber wenn ich die oben genannte URL in einem Internet-Browser lasse, fordert es mich auf, die Datei herunterzuladen.

Python ist in der Lage, die Datei zu ziehen, so habe ich das Gefühl, dass ich etwas in R geändert habe, die ich seitdem auf 3.4.2 aktualisiert habe und RStudio auf die aktuelle Version aktualisieren.

Der spezifische Fehler ich erhalte, ist:

Error in file(file, "rt") : cannot open the connection 
In addition: Warning message: 
In file(file, "rt") : InternetOpenUrl failed: '' 

ich auf eine abgespeckte Version von RStudio und R, um versuchen werde zu installieren, was vor 2 Monaten war zu sehen, ob diese sie löst. Aber in der Zwischenzeit, irgendwelche Ideen? Passiert das für irgendjemand anderes? Es könnte sogar von meiner IT-Abteilung eine Art Firewall installiert werden. Ich kratze wirklich meinen Kopf hier.

Vielen Dank im Voraus.

EDIT: Sieht aus wie fread von data.table gelingt. Ich habe keine Ahnung, warum read.csv hat jedoch angefangen zu scheitern.

+0

'read.csv' sendet an' read.table', welches letztendlich 'download.file' aufruft. Betrachte die Hilfe für Letzteres, da könnte es Millionen Gründe geben. Neuere R verwendet curl nativ und _should_ erfolgreich. Ich denke auch, 'fread' (was ich auch liebe) verwendet die gleiche R-Funktionalität zum Download so ... –

+0

Ja, ich stimme zu, es könnte eine Million Gründe geben. Ich habe eine ältere Version von R (3.3.2) ausprobiert und den gleichen Grund bekommen. Könnte sogar Windows sein. Danke für den Tipp. – giraffehere

+0

Auch das Wissen, dass es _turtles ganz nach unten ist, ist nützlich, da Sie 'download.file()' 'sagen können, um eine externe' curl'- oder 'wget'-Binärdatei zu verwenden. Ich habe mich in der Vergangenheit darauf verlassen ... –

Antwort

0

Nachdem die Debug-Kette nach unten geht, scheint es, dass ich diese Option setzen muss meine Frage zu bekommen beheben:

options(url.method = "libcurl") 

Die andere Option:

options(download.file.method="libcurl") 

nur befasst sich mit der download.file Funktion, und nicht die file Funktion, die read.csv anruft. Die früheren Adressen file.