web-dev-qa-db-ja.com

Rのdownload.file()の終了ステータスがゼロ以外です

R 3.0.1(Windows 7)でファイルをダウンロードしようとしています:

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

URLとインターネット接続の両方を確認しましたが、正常に機能しているようです。ただし、次のメッセージが表示されます。

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

オンラインでヘルプが見つかりません、誰かがこれを修正する方法を知っていますか?

13
Renne007

@dickoaによる答えはおそらく機能しますが、大きな問題はhttpsを不必要に使用していることだと思います。私はこれがうまくいくと思います:

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

method = "curl"を削除しても問題が解決しない理由はまだわかりません。

別の解決策は、download.fileをラップするdownloaderパッケージをインストールし、ダウンロードプロセスをより簡単でクロスプラットフォームにすることです(すべてのOSで同じパラメーターを持つ1つの関数)

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")

今回はうまくいくことを願っています

17
dickoa

別の方法を試してください:..., method = "libcurl")

4
Denis Rasulev

ダウンロードする前にsetInternet2を使用してください。それは私のために働いた。

setInternet2(use = T)

ファイル<-"URL"

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

3
user3824214

@dickoa:実行すると「TRUE」が表示されるという事実を考えると:

file.exists("./data")

私はあなたが最初に書いたと思います:

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

共有したコードを実行してcsvをダウンロードする前に。ただし、これにより、ディレクトリではなくファイル「データ」が作成されます。したがって、コードの前にRスクリプトに次のように記述する必要があります。

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

この後、あなたのコードはうまくいくはずだと思います。お役に立てれば。

2
Diogo A.

これはうまくいきます!

file <-' http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD 'download.file(file、destfile = "cameras.csv" )

2
ronald

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

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

以下を使用します(1行目と2行目でhttpsの代わりにhttpを削除しますmehod = "curl")

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

これを試してみてください、あなたはcsvファイルをダウンロードすることができます

2
user3915636

Httpsでsslを省略した後、これが機能することがわかりました。

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

次に、メソッドを「自動」に設定します

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

1
R.Warner

download.file()を呼び出すと、ディレクトリは作成されません。
代わりに、ファイルを作成するための有効なディレクトリをすでに作成しておく必要があります。
あなたはまだdataというフォルダを作成していないと思います。

お役に立てれば。

1
SalicBlu3

それは私に起こったばかりです。これを機能させるには、「s」の「https」を削除する必要があります。また、「method = curl」も指定しないでください。私はまだ始めたばかりなので、それがどのように機能するのかわかりませんでしたが、ちょっとそれは仕事をします。

1
Anderson

haxx サイトから実際にcurlをダウンロードしてから、その場所をシステム環境変数のパスに追加する必要があることがわかりました。その後、

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

コマンドは正常に機能しました。これは、Windows 7、64ビットマシン上にありました。

0
Simon Alexander

同じファイルをダウンロードするために2つの方法を試しました。

  1. install.packages("downloader")を使用してパッケージ「ダウンローダー」をダウンロードしてから、require(downloader)コマンドを使用してパッケージをロードします。この後、次のコマンドを使用します:download(fileurl,"./data/camera.csv",mode="wb")

  2. 他の方法は次のとおりです。

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

data.frameメソッドを使用してwrite.csvファイルを保存してファイルを保存します。

0
user3517973

私は1秒前に同じエラーを受け取り、まったく同じタスクを手元に置いています。私にとっての問題は、私が正しい作業ディレクトリにいないことでした。

解決策:右下隅のウィンドウ(画像を比較)で、[作業ディレクトリとして設定]よりも[その他]をクリックします。

enter image description here

ダウンロードを再試行してください!私にとってはうまくいきました。

0
ChrisChross

行を「method = curl」から「method = internal」に変更してみてください

Curlメソッドを使用する場合は、コンピューターにcurlライブラリをインストールする必要があります( http://curl.haxx.se/ )。

0
thy

method = "libcurl"と書くと、httpまたはhttpsの両方のURLで機能します

0
ajay