Используйте magrittr для передачи download.file () в другую функцию - PullRequest
0 голосов
/ 18 мая 2018

Как я могу использовать magrittr для передачи вывода download.file() напрямую в readxl() без предварительного сохранения во временное местоположение?

Например, у меня есть следующий код:

download.file(www, method="curl") %>%
  read_excel(x, sheet ="List 1", range="A3:L1902") -> cw

Это дает мне ошибку, потому что мне не хватает аргумента destfile= ... есть идеи?

1 Ответ

0 голосов
/ 19 мая 2018

Я попробовал идею connections, но из моих поисков readxl не поддерживает чтение из URL (вы можете посмотреть здесь и здесь ).Тем не менее, я нашел здесь что-то, что могло бы вам помочь.

В пакете rio есть обертка вокруг read_excel, которая позволяет использовать URL-адреса.Вы даже можете добавить аргумент sheet, чтобы выбрать лист для загрузки.Кроме того, по моему опыту, если вы знаете расширение файла, которое вы будете использовать - добавьте аргумент format.

install.packages("rio") # if needed

df <- rio::import("https://evs.nci.nih.gov/ftp1/CDISC/SDTM/SDTM%20Terminology.xls", 
                      format = "xls", sheet = "SDTM Terminology 2018-03-30")
...