You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求可指定目录下载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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 07:11:15