it-swarm.com.de

download.file () in R hat einen Exit-Status ungleich Null

Ich versuche, eine Datei in R 3.0.1 (Windows 7) herunterzuladen:

    fileUrl <- "https://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD"
    download.file(fileUrl, destfile="./data/cameras.csv", method="curl")

Ich habe sowohl die URL als auch meine Internetverbindung überprüft und sie scheinen gut zu funktionieren. Ich erhalte jedoch diese Nachricht:

    Warning message:  
    In download.file(fileUrl, destfile = "./data/cameras.csv", method = "curl") : 
    download had nonzero exit status

Können Sie keine Hilfe online finden, weiß jemand, wie Sie das beheben können?

12
Renne007

Die Antwort von @dickoa funktioniert wahrscheinlich, aber ich denke, das Hauptproblem ist, dass Sie https unnötig verwenden. Ich denke das funktioniert:

# Note the http instead of https
file<-'http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD'
read.csv(file)
8
nograpes

Verstehe immer noch nicht, warum das Entfernen von method = "curl" das Problem nicht löst. 

Eine andere Lösung ist die Installation des Pakets downloader, das download.file umschließt und den Downloadvorgang einfacher und plattformübergreifend macht (eine Funktion mit denselben Parametern für alle Betriebssysteme).

install.packages("downloader")
fileUrl <- "https://data.baltimorecity.gov/api/views/dz54-2aru
            /rows.csv?accessType=DOWNLOAD"

require(downloader)
download(fileUrl, "data/cameras.csv", mode = "wb")

Hoffe, dass es diesmal klappt

17
dickoa

Verwenden Sie setInternet2 vor dem Download. es hat für mich funktioniert.

setInternet2 (use = T)

datei <- "URL"

download.file (file, destfile = "./data/cameras.csv")

3
user3824214

Versuchen Sie es mit einer anderen Methode: ..., method = "libcurl")

3
Denis Rasulev

@dickoa: In Anbetracht der Tatsache, dass Sie "TRUE" erhalten, wenn Sie dies tun: 

file.exists("./data")

Ich nehme an, Sie haben anfangs geschrieben: 

if (!file.exists("data")) { file.create("data") }

bevor Sie den Code ausführen, den Sie zum Herunterladen der CSV-Datei freigegeben haben. Dadurch wird jedoch eine Datei "Daten" erstellt, kein Verzeichnis. Folgendes sollte also vor Ihrem Code in Ihr R-Skript geschrieben werden:

if (!file.exists("data")) { dir.create("data") }

Danach glaube ich, dass Ihr Code gut funktionieren sollte. Hoffe das hilft.

2
Diogo A.

Das funktioniert!

datei <- ' http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD ' download.file (Datei, Destfile = "Kameras. csv ")

2
ronald

fileUrl1 <- "https: // ... xyz.csv"

download.file (fileUrl1, destfile = "./ data/xyz.csv", method = "curl")

Verwenden Sie folgendes (http statt https in der 1. Zeile und in der 2. Zeile entfernen Sie mehod = "curl")

fileUrl1 <- "http: // ... xyz.csv"
download.file (fileUrl1, destfile = "./ data/xyz.csv") 

versuchen Sie dies, Sie können die CSV-Datei herunterladen 

2
user3915636

Ich fand das funktioniert nach dem Weglassen der ssl in https dh

NatGas <- " http://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FDATA.gov_NGAP.xlsx "

und dann die Methode auf "auto" setzen

download.file (NatGas, destfile = "./TidyData/NatGas.xlsx",method =" auto ", mode =" wb ")

1
R.Warner

Wenn Sie download.file() aufrufen, wird das Verzeichnis nicht für Sie erstellt.
Stattdessen muss bereits ein gültiges Verzeichnis erstellt werden, damit die Datei erstellt werden kann.
Ich vermute, dass Sie noch keinen Ordner mit dem Namen data erstellt haben.

Hoffe das hilft.

1
SalicBlu3

Es ist mir einfach passiert. Damit es funktioniert, müssen Sie nur die 's' in 'https' loswerden und nicht 'method = curl' angeben. Ich fange gerade erst an, also habe ich keine Ahnung, wie es funktioniert, aber hey erledigt es.

1
Anderson

Ich habe festgestellt, dass ich curl tatsächlich von der haxx - Site herunterladen und dann den Pfad in den Systemumgebungsvariablen hinzufügen muss. Danach das 

download.file(fileURL, destfile = "data/cameras.csv", method = "curl") 

befehl funktionierte gut. Dies war auf einem Windows 7-64-Bit-Computer.

0
Simon Alexander

Ich habe zwei Methoden zum Herunterladen derselben Datei ausprobiert:

  1. Laden Sie das Paket "downloader" mit install.packages("downloader") herunter und laden Sie dann das Paket mit dem Befehl require(downloader). Verwenden Sie danach den Befehl: download(fileurl,"./data/camera.csv",mode="wb")

  2. Die andere Methode ist:

    datei <- ' http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD ' read.csv (Datei)

und speichern Sie die data.frame-Datei mit der write.csv-Methode, um die Datei zu speichern.

0
user3517973

Ändern Sie die Zeile von "method = curl" in "method = internal".

Wenn Sie die curl-Methode verwenden möchten, müssen Sie die curl-Bibliothek auf Ihrem Computer unter http://curl.haxx.se/ installieren.

0
thy

wenn Sie method = "libcurl" schreiben, funktioniert dies sowohl für http- als auch für https-URLs

0
ajay