Использование R для загрузки файлов *.xls приводит к ошибке

Я пытаюсь загрузить большое количество файлов xls с серверов BLS. Когда я вручную загружаю любой из файлов, они прекрасно открываются.

Но когда я пытаюсь загрузить файл изнутри R:

library(readxl)

tp <- "http://www.bea.gov/histdata/Releases/GDP_and_PI/2014/Q4/Third_March-27-2015/Section1ALL_Hist.xls"
temp <- paste0(tempfile(), ".xls")
download.file(tp, destfile = temp, mode = "wb")

это загружает файл нужного размера, но пытается прочитать файл:

 data <- read_excel(path = temp, sheet = 1)

возвращает ошибку

seek: wanted to seek to sector 5374034 (0x520052) loc=2751505920

person tomw    schedule 24.05.2015    source источник
comment
В экселе он вообще открывается?   -  person shadowtalker    schedule 24.05.2015
comment
temp <- paste0(tempfile(), ".xls") может сработать.   -  person Pierre L    schedule 24.05.2015
comment
Когда я загружаю файл вручную, да, он открывается в Excel. Когда я загружаю файл в R, он не открывается в Excel и не читается R.   -  person tomw    schedule 24.05.2015
comment
@plafort спасибо за предложение - я добавил его в вопрос. все равно возвращает ошибку.   -  person tomw    schedule 24.05.2015


Ответы (1)


Установите mode="wb" для выполнения двоичной передачи:

download.file(tp, destfile=temp, mode="wb")
person Hong Ooi    schedule 24.05.2015
comment
Странно, это сработало для меня. Я также смог использовать download.file(tp, destfile=temp, method='curl'). Какая у вас ОС и прочее? - person r2evans; 24.05.2015
comment
черт возьми, я только что обновил свою сессию R, и это сработало. Спасибо, что подтолкнули меня! - person tomw; 24.05.2015