Edit: Итак, мне удалось заставить что-то еще работать (включено ниже). Но я все еще хотел бы понять, почему моя первая попытка оказалась неудачной.
Это я пытаюсь использовать download.file для загрузки моего общедоступного файла Dropbox:
library("readxl")
# Define public download link location ------------------------------------------
excelUrl = "https://www.dropbox.com/s/v9lm9y7nso8yw1x/dashboardTotals.xlsx?dl=1"
# I've experimented with appending '&raw=1' to this, doesn't seem to do anything.
# Function for downloading .xlsx into current wd --------------------------------
read_url_excel <- function(url,saveas = paste0(getwd(),"/newExcelFile.xlsx")){
download.file(url, destfile = saveas)
url_excel <- readxl::read_excel(saveas)
return(url_excel)
}
# This doesn't work, because the file is corrupted and can't be read by read_excel()
excelTable = read_url_excel(excelUrl)
#> Error: Evaluation error: error reading from the connection.
Создано в 2020-01-09 с помощью пакета prex (v0.3.0)
Вы, вероятно, можете сказать, что я не совсем уверен, как соединения / файлы работают в R. Мне удалось заставить это работать вместо этого:
excelUrl = "https://www.dropbox.com/s/v9lm9y7nso8yw1x/dashboardTotals.xlsx?dl=1&raw=1"
tmpF <- paste0(getwd(),"/newTing.xlsx")
theFile <- url(excelUrl, open="rb")
binary = readBin(theFile,raw(),100000)
writeBin(binary,tmpF)
Создано в 2020-01-09 пакетом представ (v0.3.0)
Почему метод 1 завершается неудачно, а метод 2 - успешным?