【问题标题】:Use roxygen2 to export a variant function使用 roxygen2 导出变体函数
【发布时间】:2016-09-09 16:38:57
【问题描述】:

当我使用@describeIn@rdname 记录函数的变体时,该变体不会被导出。我可以在 roxygen 骨架中放置一个标签来更改它,还是我需要直接进入 NAMESPACE?

#' Title
#'
#' @return
#' @export
#'
#' @examples
foo <- function() {
  "foo"
}

#' @rdname foo A variant
#'
#' @export
bar <- function() foo()

当我附加这个包时,我可以调用foo 就好了,但尝试调用bar 会导致Error: could not find function "bar"

【问题讨论】:

  • 您是否非常反对将@export 添加到roxygen for bar 中?这就是 foo 代码中的 @export 为您所做的。别名函数也是如此。
  • 我试过了,因为它看起来很自然,但它仍然没有被导出。我得出的结论是我遗漏了一些语法上的细微差别。
  • 你重新运行 roxygen 了吗?
  • devtools::document()。应该这样做,对吧?
  • 应该的。如果您检查您的 NAMESPACE 文件,是否已将其修改为包含 bar?我只是想知道您是否更新了软件包但忘记构建/安装它并尝试使用本地安装的软件包来测试它是否有效。

标签: r roxygen2 package-development


【解决方案1】:

问题是@rdname foo 之后的那一行文字。请注意运行 roxygen 时给出的有关“无效路径”的消息:

> devtools::document()
Updating mypackage documentation
Loading mypackage
Writing NAMESPACE
Writing foo.Rd
Skipping invalid path:  foo A variant..Rd 

这可以通过删除标签文本来解决:

#' @rdname foo
#' @export

或者使用@describeIn:

#' @describeIn foo A variant.
#' @export

【讨论】:

    猜你喜欢
    • 2017-02-16
    • 2013-08-22
    • 2017-03-06
    • 1970-01-01
    • 2019-06-16
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多