S3方法未明确导出

时间:2016-02-17 20:01:38

标签: r roxygen2

当我在顶级对象上调度时,所有函数都会导出到命名空间。一切都按照我的预期运作。

myfun <- function(obj) {
   UseMethod("myfun",obj) 
}

#' @export
myfun.this <- function()

命名空间

S3Method(myfun,this)
export(myfun)

但是当我尝试在我的对象中发送一个元素时......

#' Subsets recoded data by a condition
#' 
#' This function filters a list, data.frame or vector by a condition
#' 
#' @param so A surv3 object
#' @param condition A positively stated condition or logical vector
#' @export 
subset.surv3 <- function(so, condition) { 
  UseMethod("subset.surv3",so$recoded) # THIS PART
}

#' @export
subset.surv3.categorical <- function(so, condition) {
  ....
  return(so)
}

#' @export
subset.surv3.continuous <- function(so, condition) {
  ...
  return(so)
}

命名空间:

S3method(subset,surv3.categorical)
S3method(subset,surv3.continuous)

但是,不会导出这些功能。

我原以为:

export(subset.surv3.categorical)
export(subset.surv3.continuous)

我做错了什么?

1 个答案:

答案 0 :(得分:0)

我在这里发布类似的东西:

但是,毕竟,S3调度应该通过通用函数:

  • 泛型可以“换行”方法调用
  • S3对象可以具有更高优先级的类。

这应该没有“显式”方法导出。