我们在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)
}