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

如何在不覆盖现有版本的情况下测试R包更新?

如何在不重命名包的情况下同时安装同一R包的两个开发版本

当然可以,不用改包名也能同时存放并对比同一R包的两个开发版本,核心是通过独立的本地库路径来区分不同版本,具体操作步骤如下:

  1. 创建临时本地库目录
    先在本地新建一个专门存放更新版本的库文件夹,比如在用户目录下创建:

    dir.create("~/R/temp_dev_lib", recursive = TRUE)
    

    这个目录完全独立于你平时安装R包的默认库,不会和现有版本冲突。

  2. 将更新后的包安装到临时库
    根据你的包来源选择对应的安装命令,指定lib参数为刚才创建的临时库路径:

    • 如果你是从本地源码文件夹安装更新后的版本:
      devtools::install(pkg = "path/to/your/updated/package", lib = "~/R/temp_dev_lib")
      
    • 如果你是从Git仓库的某个更新分支安装:
      devtools::install_git("https://your/repository/url.git", ref = "your-updated-branch", lib = "~/R/temp_dev_lib")
      
  3. 加载不同版本进行对比
    因为同一R会话不能同时加载同一个包的两个版本,你可以通过两种方式对比:

    • 打开两个独立的R会话:一个用默认库加载原开发版本(library(your_package)),另一个用lib.loc参数加载临时库的更新版本:
      library(your_package, lib.loc = "~/R/temp_dev_lib")
      
    • 在同一个会话中切换版本,先卸载当前加载的版本再加载另一个:
      # 卸载当前版本
      detach("package:your_package", unload = TRUE)
      # 加载原版本
      library(your_package)
      # 切换到更新版本
      detach("package:your_package", unload = TRUE)
      library(your_package, lib.loc = "~/R/temp_dev_lib")
      
  4. 清理临时版本
    当你对比完成后,直接删除刚才创建的~/R/temp_dev_lib文件夹即可,不会对原开发版本造成任何影响。

另外可以用.libPaths()查看当前R的默认库路径,确保临时库没有被加入默认路径(避免误加载),如果不小心加了,用.libPaths(.libPaths()[-.libPaths() == "~/R/temp_dev_lib"])移除即可。

内容的提问来源于stack exchange,提问作者user19904

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 12:52:07