如果您想在您的 中以自动方式同时包含 anS3method
和export
指令,您可以简单地添加一个更明确的额外标签。NAMESPACE
roxygen2
@export
为了说明,我创建了一个虚拟包,exportTest
. 这个包在R/
子目录中只有一个文件,print.foo.R
:
#' Print method for "foo" class
#'
#' @param x An object of class "foo"
#' @param ... Other arguments passed to or from other methods
#'
#' @export print.foo
#' @export
print.foo <- function(x, ...) {
cat("This is just a dummy function.\n")
}
ing后document()
,我有以下内容NAMESPACE
:
# Generated by roxygen2: do not edit by hand
S3method(print,foo)
export(print.foo)
我从Hadley 关于导出名称中带有 a 的非 S3 方法函数的建议中.
得到了这个想法。如果你使用
#' @export function.name
它明确地使用提供的export()
指令function.name
。然后我测试了你是否可以将它与更模糊的@export
标签结合起来生成一个S3method()
指令,瞧!有用。
但是,我会注意到,据我所知,在任何地方都没有记录能够肯定地做到这一点,因此有可能在某个时候停止工作,甚至可能没有警告。如果这是您想要确保存在和/或在某处记录的功能,我建议在他们的 GitHub 存储库中打开一个问题。