从网页下载所有 R zip 包

时间:2021-05-26 21:19:58

标签: r

我目前工作的组织在 R Studio 中阻止了 CRAN 存储库。因此,为了安装软件包,我需要转到 http://cran.rstudio.com/bin/windows/contrib/3.6/ 并手动下载每个软件包及其依赖项并将它们安装在 RStudio 中。它变得相当乏味。

有没有办法让我一次下载此页面上的所有 zip 文件并将它们放在桌面上的文件夹中?然后从那里有一个代码可以在 RStudio 中一次安装/加载所有 zip 文件包?

先谢谢你!

1 个答案:

答案 0 :(得分:0)

这是一个使用包 rvest 的可能示例。 rvest 函数用于获取要下载的软件包列表。

请注意,Sys.sleep(1L) 调用会在两次下载之间暂停执行一秒钟。您显然可以更改或完全删除它。

library(rvest)

url <- 'https://cran.rstudio.com/bin/windows/contrib/3.6'

packages <- rvest::read_html(url) %>%
  rvest::html_nodes("a") %>%
  rvest::html_text() %>%
  grep('.zip$', ., value = TRUE) %>%
  sort()

for (pkg in packages) {
  Sys.sleep(1L)
  cat('Downloading', pkg, '...')
  pkg_url <- file.path(url, pkg)
  download.file(pkg_url, destfile = pkg, quiet = TRUE)  
  cat(' DONE.\n')
}