R - tipsR包R语言做生信

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

2018-11-12  本文已影响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")
}
上一篇下一篇

猜你喜欢

热点阅读