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

开发R包时如何从GitHub导入指定版本的enrichR依赖包

如何在自定义R包中指定依赖GitHub上的特定版本enrichR

我明白你遇到的问题——CRAN上的enrichR存在bug,而你需要在自己的包里强制使用GitHub上的v2.1版本。下面是一步步的解决方法,帮你搞定这个依赖问题:

1. 修正DESCRIPTION文件的配置

你的现有配置方向是对的,但需要更精确地锁定GitHub版本,避免拉取最新版或者CRAN版。调整后的DESCRIPTION关键字段应该是这样:

Imports:
    enrichR (>= 2.1)
Remotes:
    wjawaid/enrichR@v2.1
  • 重点是在Remotes里加上@v2.1,这样会直接拉取enrichR仓库里标记为v2.1的版本,而不是默认的最新分支。
  • 确保Remotes字段是单独成块的,放在DESCRIPTION文件的合适位置(通常在Imports之后或文件末尾均可,只要语法正确)。

2. 正确安装你的自定义包

这一步很关键!如果你用常规的install.packages()安装自己的包,R只会从CRAN寻找依赖,不会处理Remotes字段。你必须用devtools来安装:

# 先卸载可能存在的CRAN版enrichR(避免版本冲突)
remove.packages("enrichR")

# 安装你的自定义包(替换成你的GitHub仓库地址)
devtools::install_github("你的GitHub用户名/你的包仓库名")

devtools会自动读取DESCRIPTION里的Remotes配置,帮你安装指定版本的enrichR。

3. 验证依赖是否生效

安装完成后,在R里运行以下代码确认配置成功:

# 查看enrichR的版本
packageVersion("enrichR")
# 确认是从GitHub安装的
packageDescription("enrichR")$RemoteRepo

如果输出的版本是‘2.1’,且RemoteRepo显示‘enrichR’,说明依赖配置已经生效。

关于CRAN发布的注意事项

因为你的包同时在CRAN和GitHub发布,需要注意:CRAN不允许包依赖GitHub上的包(除非该包不在CRAN上)。所以如果你要把包提交到CRAN,要么等enrichR的CRAN版修复bug,要么通过维护两个分支(比如main用于GitHub发布,cran用于CRAN提交)来区分配置——CRAN分支移除Remotes字段,仅依赖CRAN版enrichR。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.30 14:12:31