【发布时间】:2020-03-02 17:39:02
【问题描述】:
我正在编写一个 R 包,我想在函数文档之间包含交叉引用。
在文档here 之后,有一个专门讨论这个问题:
交叉引用
有两个标签可以让人们更轻松地浏览您的文档:
@seealso和@family。 [...] 如果您有一系列相关函数,您可以使用@family {family}将每个函数交叉引用到该家族中的每个其他函数。一个函数可以是多个家族的成员。对于
sum(),可能如下所示:#' @family aggregations #' @seealso [prod()] for products, [cumsum()] for cumulative sums, and #' [colSums()]/[rowSums()] marginal sums over high-dimensional arrays.默认情况下
@family {family},将生成另见文本“Other {family}:”,因此@family名称应该是复数(即“model building helpers”而不是“model building helper”)。您可以通过在man/roxygen/meta.R中提供rd_family_title列表来覆盖默认标题:rd_family_title <- list( aggregations = "Aggregation functions" )
所以,我编写了这样的函数文档:
#' My foo function
#'
#' Does something with my data.
#'
#' Lorem ipsum.
#'
#' @param .data A data frame.
#' @return My processed data.
#' @usage
#' my_foo_function(.data)
#' @family {a_family}
#' @family {another_family}
#' @export
my_foo_function <- function(.data) {
# Some code
}
(我用这种方式写了大约 9 个函数)
我也写了这个meta.R 文件:
rd_family_title <- list(
a_family = "A family of functions",
another_family = "Another family of functions"
)
这保存在这里:[package project path]/roxygen/man/meta.R(同样,遵循文档)。
但是,当我运行 document() 函数(以构建 .Rd 文件)时,我收到以下警告:
document()
## Updating my_package documentation
## Writing NAMESPACE
## Warning messages:
## 1: Unknown Roxygen options a_family, another_family.
## Supported options: roclets, load, old_usage, markdown, r6, package
而且,在浏览文档时,我看到如下内容:
[...]
另见
其他 a_family: bar(), baz() 其他another_family:spam()、eggs()
(我已将 @family {a_family} 更改为 @family a_family 并得到相同的结果。
那么...我错过了什么? rd_family_title 列表应该在哪里?为什么 Roxygen 不能用我定义的标题替换“其他……”的东西?
一些附加信息:
- R 版本:3.6.0,在 CentOs 7 上运行,使用 Rstudio
- Roxygen2 版本:7.0.2
- 开发工具版本:2.2.1
【问题讨论】:
-
man/roxygen/meta.R应该返回一个列表,其中一个元素是rd_family_title,参见here。那应该删除警告。仍然对我不起作用 -
其实我错了,我只是在列出列表时使用了
<-而不是=。看来这目前可能被破坏了,因为load_options_meta仅在全局范围内完成,rd_family_title不是一个允许的选项,请参阅:github.com/r-lib/roxygen2/… -
@alanocallaghan 谢谢...看起来坏了 :( 很遗憾,如果能成功就太好了
-
我建议在 repo 上打开一个问题,要么它会得到修复,要么他们会告诉你你做错了什么