使用Roxygen记录R.oo类/方法

时间:2011-08-26 00:38:45

标签: r roxygen roxygen2

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

2 个答案:

答案 0 :(得分:3)

我想,

  1. @usage是必需的。
  2. 对于S3通用/方法一致性,MyMethod.ClassName函数需要点 - 点参数。
  3. 不是#' @export MyMethod.ClassName而是#' @S3method MyMethod ClassName
  4. 示例代码:

    #' 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
    })
    

答案 1 :(得分:2)

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

#' 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 ) { ... } )