美文网首页R - tipsR包R语言做生信
一个从CRAN上批量下载R包的函数

一个从CRAN上批量下载R包的函数

作者: 董八七 | 来源:发表于2018-11-12 19:39 被阅读11次

服务器没有连外网,只能本地安装R包。有些包需要依赖包,层层递进的话有时安装一个包需要先安装几十个依赖包。从CRAN里一个个下载比较繁琐,于是写了一个函数来解决,只需要包的名字作为参数。用的是清华源,下载速度很可观。

library(tidyverse)
library(rvest)
#' Title Download R packages from cran
#'
#' @param pack_nam 
#'
#' @return
#' @export
#'
#' @examples 
#' c("qqman", "lars", "ncvreg", "coin", "bigmemory") %>% lapply(downlaod_rpack)

downlaod_rpack <- function(pack_nam) {
  pack_url <- paste0("https://mirrors.tuna.tsinghua.edu.cn/CRAN/web/packages/", pack_nam,"/index.html") %>% 
    readLines() %>% str_extract("src\\/contrib.*tar.gz") %>% .[!is.na(.)] %>% str_split(" ") %>% unlist() %>% .[2]
download.file(paste0("https://mirrors.tuna.tsinghua.edu.cn/CRAN/src/contrib/", pack_url),  destfile = paste0(pack_url), mode = "wb")
}

相关文章

网友评论

    本文标题:一个从CRAN上批量下载R包的函数

    本文链接:https://www.haomeiwen.com/subject/yazcfqtx.html