Download.file() в R имеет ненулевой статус выхода

Я пытаюсь загрузить файл в 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

Невозможно найти какую-либо помощь в Интернете, кто-нибудь знает, как это исправить?

Ответ 1

Ответ от @dickoa, вероятно, работает, но я думаю, что основная проблема заключается в том, что вы используете https без необходимости. Я думаю, что это работает:

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

Ответ 2

По-прежнему не понимаю, почему удаление method = "curl" не решает проблему.

Другим решением является установка пакета downloader, который завершает download.file и упрощает процесс загрузки и кросс-платформу (одна функция с одинаковыми параметрами для всех ОС)

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

Надеюсь, что он будет работать в этот раз

Ответ 3

Используйте setInternet2 перед загрузкой. это сработало для меня.

setInternet2 (использование = Т)

file < - "URL"

download.file(файл, destfile = "./data/cameras.csv" )

Ответ 4

Попробуйте другой метод: ..., method = "libcurl")

Ответ 6

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

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

Используйте следующее (http вместо https в 1-й строке и во 2-й строке удалите mehod = "curl" )

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

попробуйте это, вы можете загрузить файл csv

Ответ 7

@dickoa: Учитывая тот факт, что вы получаете "TRUE", когда вы делаете:

file.exists("./data")

Я предполагаю, что вы написали изначально:

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

прежде чем выполнять код, который вы использовали для загрузки csv. Однако это создает файл "данные", а не каталог. Итак, перед вашим кодом должно быть записано следующее в R script:

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

После этого я считаю, что ваш код должен работать нормально. Надеюсь, это поможет.

Ответ 8

Когда вы вызываете download.file(), он не создает для вас каталог.
Вместо этого вам нужно создать уже созданную директорию для создания файла.
Я предполагаю, что вы еще не создали папку с именем data.

Надеюсь, что это поможет.

Ответ 10

Это случилось со мной. Чтобы заставить его работать, вам просто нужно избавиться от "s" в "https", а также не указывать "method = curl". Я только начинаю, так что понятия не имею, как это работает, но эй, это делает эту работу.

Ответ 11

Попробуйте изменить строку "method = curl" на "method = internal"

Если вы хотите использовать метод curl, вам необходимо установить библиотеку curl на ваш компьютер, http://curl.haxx.se/

Ответ 12

Я попробовал два метода для загрузки одного и того же файла:

  • Загрузите пакет "загрузчик" с помощью install.packages("downloader"), а затем загрузите пакет с помощью команды require(downloader). После этого используйте команду: download(fileurl,"./data/camera.csv",mode="wb")

  • Другой метод:

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

и сохраните файл data.frame с помощью метода write.csv, чтобы сохранить файл.

Ответ 13

Я обнаружил, что мне пришлось фактически загрузить завиток с сайта haxx, а затем добавить его местоположение в путь в переменных системной среды, После этого

download.file(fileURL, destfile = "data/cameras.csv", method = "curl") 
Команда

работала нормально. Это было на Windows 7, 64-битной машине.