未在包中导入的类的S3方法

时间:2018-08-14 06:07:35

标签: r r-s3

我们在R包中为不同的类提供了多种方法,但与我们在Description中导入的包相距甚远。

现在,我们想为迄今为止与我们的程序包无关的类编写更多的方法。如果必要的程序包在名称空间中,因此R知道该类,则此方法很好。然后,我们不需要在我们的程序包中导入该程序包。

但是,这样做有点不对劲。是否有针对此类情况的最佳做法? 最好不要导入它,因为依赖关系会更少,因为用户必须使用他想使用我们的函数的类来主动加载程序包。

更新

实际上,

@Roland Enhances读起来就像我们追求的东西-尽管到目前为止我从未在任何包装中看到它。但是,我们并不是真正在访问对象……在包中有一个经过修改的as可以强制使用,但是它是通过方法导出的,因此我们需要导入方法。

我们唯一要做的是:

foo.objectfromotherclassnotinimports <- function(x){
x  <- methods::as(x, "class_from_package_we_already_imported")
x2 <- foo2(x)
return(x)
}

0 个答案:

没有答案