私はRoxygen2のPDFを読みました。サイト、@method @S3method @export の違いと、これらを使用して S3 メソッドを適切にドキュメント化する方法がよくわかりません。議論のために次の例を作成しました。
- これらを適切に文書化するにはどうすればよいでしょうか?
- すべてのクラス固有の実装の使用例を示す ?print やその他の汎用関数のドキュメントをエミュレートするにはどうすればよいですか (つまり、?print が 'factor'、'table'、'function' の使用法を示す方法)
- Wiki ページから: 「すべてのエクスポートされたメソッドには @S3method タグが必要です。これは @method と同じ形式です。これは関数ではなくメソッドをエクスポートします。つまり、generic(myobject) は機能しますが、generic.mymethod(myobject) は機能しません。」
これは解釈できません。タグが不適切に指定されている場合、関数/メソッド呼び出しが正しく機能しないということのようです。具体的に何が壊れるのでしょうか?
MyHappyFunction = function( x , ... )
{
UseMethod( "MyHappyFunction" )
}
MyHappyFunction.lm = function( x , ... )
{
# do some magic
}
ベストアンサー1
roxygen2 >3.0.0 以降では、次のものだけが必要です@export
:
#' A description of MyHappyFunction
#'
#' A details of MyHappyFunction
#'
#' @title MyHappyFunction: The my happy function
#' @param x numeric number
#' @param ... other arguments
#' @examples
#' a <- 1
#' class(a) <- "lm"
#' MyHappyFunction(a)
#' @export
MyHappyFunction <- function(x, ...){
UseMethod("MyHappyFunction")
}
#' @rdname MyHappyFunction
#' @export
MyHappyFunction.lm = function(x, ...) {
# do some magic
}
#' @rdname MyHappyFunction
#' @export
MyHappyFunction.default = function(x, ...) {
# do some magic
}
ただし、実際にメソッドを文書化しているわけではないので、次の内容で十分です。
#' A description of MyHappyFunction
#'
#' A details of MyHappyFunction
#'
#' @title MyHappyFunction: The my happy function
#' @param x numeric number
#' @param ... other arguments
#' @examples
#' a <- 1
#' class(a) <- "lm"
#' MyHappyFunction(a)
#' @export
MyHappyFunction <- function(x, ...){
UseMethod("MyHappyFunction")
}
#' @export
MyHappyFunction.lm = function(x, ...) {
# do some magic
}
#' @export
MyHappyFunction.default = function(x, ...) {
# do some magic
}