使用Roxygen在NAMESPACE中制作S3方法

时间:2015-03-31 03:32:13

标签: r roxygen2

我想使用roxygen2导出一个名为[.myclass的S3方法,我无法看到这样做的干净方法。

我需要NAMESPACE

S3method("[",myclass)

在其中,或者在我需要包裹之后无法使用该方法,但roxygen2似乎并不想帮助我。

我可以强制使用

#' @S3method [ myclass
setMethodS3("[",
        c(x="myclass"),
        function(x,i) {
blah blah balh
})

但是roxygen然后说s3方法已被弃用,我应该使用@export,但是

#' @export
setMethodS3("[",
          c(x="myclass"),
          function(x,i) {
  blah blah balh
 })

没有做到。 (在NAMESPACE中放置一个空导出)。

我问过该包的作者,他建议我使用@method和@export,但这也不起作用

#' @method [ myclass
#' @export
setMethodS3("[",
          c(x="myclass"),
          function(x,i) {
  blah blah balh
 })

也最终以" export()"在NAMESPACE中

我错过了什么?

1 个答案:

答案 0 :(得分:3)

答案:

Hadley非常有帮助,现在我意识到我不应该使用setMethodS3,而只是

#' @method [ myclass
#' @export
"[.myclass" <- function(x,i) { blah blah blah }

然后一切都很好。