寻求可指定目录下载R包zip/tar.gz文件且不安装的函数
解决方法:用
download.packages()直接下载R包压缩文件 嘿,刚好碰到过类似需求!你要找的就是R基础包utils里的download.packages()函数——它完美匹配你的要求:不需要自己手动构建下载URL,和install.packages()用完全相同的镜像查找逻辑,能把包的压缩文件(zip/tar.gz,自动适配系统)保存到你指定的目录,而且绝对不会执行安装操作。
基础用法示例
先看最简单的使用方式,比如下载dplyr包到当前目录下的pkg_downloads文件夹:
# 先创建目标目录(如果不存在的话) dir.create("pkg_downloads", recursive = TRUE, showWarnings = FALSE) # 执行下载 download.packages( pkgs = "dplyr", # 可以传多个包,比如 c("dplyr", "ggplot2") destdir = "pkg_downloads", repos = "https://cloud.r-project.org", # 指定CRAN镜像,和install.packages一致 type = .Platform$pkgType # 自动适配当前系统的包格式:Windows是zip,Linux/macOS是tar.gz )
可选参数说明
pkgs:接受单个包名字符串,或者多个包名组成的向量,一次性下载多个包。destdir:必须指定的参数,就是你想保存压缩包的目录路径,记得提前创建好(用上面的dir.create就行)。repos:和install.packages()的repos参数完全一样,你可以用平时常用的CRAN镜像地址。type:如果想强制下载源码包(tar.gz),可以设为type = "source";如果是Windows要强制下二进制zip包,设为type = "win.binary",默认的.Platform$pkgType会自动识别你的系统,最省心。
下载特定版本的包(可选)
如果需要下载某个旧版本的包,download.packages()默认只能下最新版,这时候可以用devtools包的download_version()函数:
# 先安装devtools(如果还没装) install.packages("devtools") # 下载dplyr 1.0.7版本到指定目录 devtools::download_version( package = "dplyr", version = "1.0.7", destdir = "pkg_downloads" )
这个方法同样不需要自己找URL,它会自动从CRAN的存档库中找到对应版本的包并下载。
内容的提问来源于stack exchange,提问作者Tlatwork
相关产品推荐
相关产品推荐

