【问题标题】:S3 Methods not being explicitly exportedS3 方法未显式导出
【发布时间】:2016-02-17 20:01:37
【问题描述】:

当我在顶级对象上调度时,所有函数都导出到命名空间。一切都如我所愿。

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)

我做错了什么?

【问题讨论】:

    标签: r roxygen2


    【解决方案1】:

    我在这里发布类似的内容:

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

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

    这应该可以在没有“显式”方法导出的情况下工作。

    【讨论】:

      猜你喜欢
      • 2018-04-08
      • 2018-08-25
      • 2020-12-09
      • 2023-03-13
      • 1970-01-01
      • 1970-01-01
      • 2021-10-09
      • 1970-01-01
      • 2015-02-16
      相关资源
      最近更新 更多