使用 Roxygen 在 NAMESPACE 中制作 S3method
Use Roxygen to make S3method in NAMESPACE
我想使用 roxygen2 导出一个名为 [.myclass 的 S3 方法,但我看不到一个干净的方法来执行此操作。
我需要 NAMESPACE 才能拥有
S3method("[",myclass)
在里面或者方法在我require包后无法使用,但是roxygen2好像不想帮我解决这个问题
我可以用
强制它
#' @S3method [ myclass
setMethodS3("[",
c(x="myclass"),
function(x,i) {
blah blah balh
})
但是 roxygen 然后说 s3method 已被弃用,我应该改用 @export,但是
#' @export
setMethodS3("[",
c(x="myclass"),
function(x,i) {
blah blah balh
})
只是不这样做。 (在命名空间中放置一个空导出)。
我问了包的作者,他建议我使用@method 和@export,但这也行不通
#' @method [ myclass
#' @export
setMethodS3("[",
c(x="myclass"),
function(x,i) {
blah blah balh
})
在 NAMESPACE
中也以 "export()" 结尾
我错过了什么?
答案:
Hadley 帮了大忙,现在我意识到我不应该使用 setMethodS3,而应该使用
#' @method [ myclass
#' @export
"[.myclass" <- function(x,i) { blah blah blah }
然后一切正常。
我想使用 roxygen2 导出一个名为 [.myclass 的 S3 方法,但我看不到一个干净的方法来执行此操作。
我需要 NAMESPACE 才能拥有
S3method("[",myclass)
在里面或者方法在我require包后无法使用,但是roxygen2好像不想帮我解决这个问题
我可以用
强制它#' @S3method [ myclass
setMethodS3("[",
c(x="myclass"),
function(x,i) {
blah blah balh
})
但是 roxygen 然后说 s3method 已被弃用,我应该改用 @export,但是
#' @export
setMethodS3("[",
c(x="myclass"),
function(x,i) {
blah blah balh
})
只是不这样做。 (在命名空间中放置一个空导出)。
我问了包的作者,他建议我使用@method 和@export,但这也行不通
#' @method [ myclass
#' @export
setMethodS3("[",
c(x="myclass"),
function(x,i) {
blah blah balh
})
在 NAMESPACE
中也以 "export()" 结尾我错过了什么?
答案:
Hadley 帮了大忙,现在我意识到我不应该使用 setMethodS3,而应该使用
#' @method [ myclass
#' @export
"[.myclass" <- function(x,i) { blah blah blah }
然后一切正常。