Zip-архивы на самом деле являются «файловой системой» с метаданными контента и т. Д. Подробнее см. help(unzip)
. Таким образом, чтобы сделать то, что вы набросали выше, вам нужно
- Создать темп. имя файла (например,
tempfile()
)
- Используйте
download.file()
для извлечения файла в темп. файл
- Используйте
unz()
, чтобы извлечь целевой файл из темп. файл
- Удалить временный файл через
unlink()
который в коде (спасибо за базовый пример, но это проще) выглядит как
temp <- tempfile()
download.file("http://www.newcl.org/data/zipfiles/a1.zip",temp)
data <- read.table(unz(temp, "a1.dat"))
unlink(temp)
Сжатые (.z
) или сжатые (.gz
) или bzip2ed (.bz2
) файлы представляют собой только файл и те, которые вы можете прочитать непосредственно из соединения. Поэтому попросите провайдера данных использовать его вместо этого:)