R CMD check 场景下处理 Remotes 远程依赖的正确方法是什么
问题根因
你遇到的警告是原生R CMD check的常规依赖校验逻辑导致的:Remotes是devtools/remotes等安装工具扩展的非标准字段,仅用于告知安装工具依赖包的获取来源,不会被R CMD check识别为合法的依赖声明。你在代码中使用了rpackage::形式的调用,但没有在Imports/Suggests中声明该依赖,因此触发警告。
正确处理步骤
- 将私有包名添加到
Imports字段
修改DESCRIPTION文件,补充rpackage到Imports列表中,保留原有Remotes字段不变:
Imports: dplyr, rpackage Remotes: geebioso/rpackage
如果你仅在可选功能、示例或测试中使用该私有包,可以将其添加到Suggests字段,同时在调用该包的代码前增加存在性校验:
if (requireNamespace("rpackage", quietly = TRUE)) { rpackage::xxx() }
校验包名一致性
确认Imports中写的包名和私有仓库内包的DESCRIPTION文件中Name字段的值完全一致(大小写敏感),不要误写为GitHub仓库名。重新执行检查
修改完成后重新运行rcmdcheck::rcmdcheck(error_on = "warning"),该警告会被消除,同时不会影响私有依赖的安装逻辑,也不会破坏原有检查规则。
内容的提问来源于stack exchange,提问作者geebioso
相关产品推荐
相关产品推荐

