5

有人能指出一个用 Roxygen 记录 R.oo 类/方法的好例子吗?在 R.oo 中,类/方法是通过调用 setConstructorS3() 和 setMethodS3() 创建的,因此本身没有记录功能。您是否只是创建标准 Roxygen 函数文档,但将其放在 NULL 语句之上?

4

2 回答 2

3

我认为,

  1. @usage是需要的。
  2. MyMethod.ClassName为了 S3 泛型/方法的一致性,函数中需要一个点-点-点参数。
  3. 不是#' @export MyMethod.ClassName,而是#' @S3method MyMethod ClassName

示例代码:

#' Title.  More Info.
#'
#' @usage MyMethod(...)
#' @param this this.
#' @param someParam Param info.
#' @param ... other arguments.
#'
#' @rdname   MyMethod
#' @export   MyMethod
#' @name     MyMethod
NULL

#' @usage \method{MyMethod}{ClassName}(this, someParam, ...)
#' @return MyMethod.ClassName:
#' \code{NULL}
#'
#' @rdname   MyMethod
#' @S3method MyMethod ClassName
#' @name     MyMethod.ClassName
setMethodS3("MyMethod", "ClassName", appendVarArgs = FALSE, 
function(this, someParam, ...) {
  NULL
})
于 2011-08-29T03:38:33.383 回答
2

经过一些试验和错误,这就是我想出的。此解决方案确保所有对象都正确导出,R CMD 构建/检查不会呕吐,没有多余的文档,并且示例将执行。请注意,如果将@export 替换为@method/@S3method,则该解决方案将不起作用。理论上这应该有效,但它不适合我。有人有更好的解决方案吗?

#' Title.  More Info.
#'
#' @param someParam  Param info.
#'
#' @name     MyMethod
#' @export   MyMethod
NULL
#' @rdname   MyMethod
#' @name     MyMethod.ClassName
#' @export   MyMethod.ClassName
setMethodS3( "MyMethod" , "ClassName" , appendVarArgs = FALSE , 
function( this , someParam ) { ... } )
于 2011-08-26T14:40:49.853 回答