首页 > 解决方案 > R Roxygen:在示例中没有找到导入的函数

问题描述

在我正在编写的一个包的函数中,我想从公式和数据创建一个 cox ph 模型。没什么了不起的,并且该功能按预期工作。在内部,我调用该coxph函数,该函数又调用该Surv函数(均来自生存包)。

向 roxygen 标头添加示例时,我在测试时收到以下错误消息:

Surv 中的错误(时间、状态):找不到函数“Surv”

在 roxygen 标头中,我已经声明了导入(仅使用函数,但也尝试了整个包),并且 NAMESPACE 文件清楚地列出了导入。将包加载到干净的工作区(没有加载生存)时,该功能也可以工作(如果我删除导入则不起作用)。

如何确保示例具有正确的可用命名空间?我讨厌使用\dontrun.

缩写函数(不打算运行,语法不正确,只是上下文发生的事情的简化版本):

#' @importFrom survival coxph Surv
build_cox_model <- function(params) {
cox_form <- basecamb::build_model_formula(params)
cox_model <- survival::coxph(data, cox_form)
}

扩展错误信息:

data <- survival::lung
build_cox_model(data, 'time', 'status', c('age','sex'))
Error in Surv(time, status) : could not find function "Surv"
Calls: build_cox_model ... eval -> <Anonymous> -> model.frame.default -> eval -> eval
Execution halted

标签: rnamespacesdocumentationroxygen2

解决方案


推荐阅读