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")
Ответ 5
Это работает!
file < - 'http://data.baltimorecity.gov/api/views/dz54-2aru/rows.csv?accessType=DOWNLOAD' download.file(файл, destfile = "cameras.csv" )
Ответ 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
.
Надеюсь, что это поможет.
Ответ 9
Я нашел, что это работает, опуская ssl в https, т.е.
NatGas < - " http://d396qusza40orc.cloudfront.net/getdata%2Fdata%2FDATA.gov_NGAP.xlsx"
а затем установите метод "auto"
download.file(NatGas, destfile = "./TidyData/NatGas.xlsx", метод = "авто", режим = "wb" )
Ответ 10
Это случилось со мной. Чтобы заставить его работать, вам просто нужно избавиться от "s
" в "https
", а также не указывать "method = curl
". Я только начинаю, так что понятия не имею, как это работает, но эй, это делает эту работу.
Ответ 11
Попробуйте изменить строку "method = curl" на "method = internal"
Если вы хотите использовать метод curl, вам необходимо установить библиотеку curl на ваш компьютер, http://curl.haxx.se/
Ответ 12
Я попробовал два метода для загрузки одного и того же файла:
и сохраните файл data.frame
с помощью метода write.csv
, чтобы сохранить файл.
Ответ 13
Я обнаружил, что мне пришлось фактически загрузить завиток с сайта haxx, а затем добавить его местоположение в путь в переменных системной среды, После этого
download.file(fileURL, destfile = "data/cameras.csv", method = "curl")
Команда работала нормально. Это было на Windows 7, 64-битной машине.