【发布时间】:2018-09-16 13:32:42
【问题描述】:
我正在编写一个包含多个方法的 R6 类的包。我希望能够为类和方法生成文档。对于下面的示例,我希望能够使用?Person 访问文档,使用?set_hair 访问方法。这是我的示例类:
#' This is my Person class
#' @title Person Class
#' @docType class
#' @description Person class description
#' @field name Name of the person
#' @field hair Hair colour
#'
#' @section Methods:
#' \describe{
#' \item{set_hair Set the hair color}
#' }
#'
#' @examples
#' Person$new(name="Bill", hair="Blond")
#' @export
Person <- R6::R6Class("Person",
public = list(
name = NULL,
hair = NULL,
initialize = function(name = NA, hair = NA) {
self$name <- name
self$hair <- hair
},
# '@name set_hair
# '@param val: hair colour
set_hair = function(val) {
self$hair <- val
},
)
)
运行roxygenise(),方法体上面的注解根本不渲染,所以我在@section Methods中指定的唯一信息是在文档中。
由于我有超过 50 个类方法,如果我可以使用 ?methodname 单独访问方法文档会更好。我发现了一些关于此的帖子(Documenting R6 classes and methods within R package in RStudio、https://github.com/klutometis/roxygen/issues/306),但在我看来,R6 类不支持此功能。
分别记录我的类方法的最佳方式是什么?
【问题讨论】:
-
我不使用
Roxygen2,但也许稍后使用Person$set("public", "set_hair", function(val) ...)添加该方法将允许您放入Roxygen cmets。 -
刚刚试了一下,把函数和
Person$set放在同一个文件里类声明下面。不幸的是,这根本没有被渲染...... -
在这种情况下,我会做两件事,1,只需手动编写一个 .Rd 文件,2,阅读 github.com/klutometis/roxygen/issues/388 讨论这样的内容。
标签: r documentation roxygen2 roxygen r6