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

R包开发:示例依赖内部函数触发R CMD Check报错的最优方案

R包开发:外部函数示例调用内部函数报错的正确处理方式

问题场景

开发自定义调色板R包时,存在两个通过@export对外暴露的函数,二者均依赖一个标记@keywords internal的内部函数。运行devtools::check()时,这两个外部函数的示例会因找不到内部函数报错,即便用my_package:::my_internal_function形式调用内部函数也无法解决。此前用\dontrun{}包裹示例代码规避报错,但这只是临时方案,想了解这类示例的标准处理方式。

首选处理方案

  • 确保示例中加载包环境:在@examples代码块开头添加library(my_package),devtools::check()运行示例时会在独立环境中加载包,此时包命名空间内的内部函数可被外部函数正确调用,无需直接在示例里显式调用内部函数。
  • 开发阶段预加载包:编写示例时,先用pkgload::load_all()加载包的开发版本,让内部函数在开发环境中可被识别,这样devtools::check()执行时能正确解析函数依赖关系。
  • 聚焦外部函数用法:示例核心是展示对外暴露的函数功能,内部函数的逻辑已经被外部函数封装,无需在示例中直接调用内部函数。只演示外部函数的输入输出,既符合用户实际使用场景,也从根源避免内部函数的依赖问题。

后续更新

已无法复现该问题,问题已解决。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.11 07:05:26