有人能指出一个用 Roxygen 记录 R.oo 类/方法的好例子吗?在 R.oo 中,类/方法是通过调用 setConstructorS3() 和 setMethodS3() 创建的,因此本身没有记录功能。您是否只是创建标准 Roxygen 函数文档,但将其放在 NULL 语句之上?
问问题
318 次
2 回答
3
我认为,
@usage
是需要的。MyMethod.ClassName
为了 S3 泛型/方法的一致性,函数中需要一个点-点-点参数。- 不是
#' @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 回答