R-从可选包装中延长S3通用

  • 本文关键字:S3 通用 包装 r generics
  • 更新时间 :
  • 英文 :


i有一个软件包,该软件包为其对象提供了as.FlexTable方法,从ReporteRs软件包中扩展了S3 Generic。因此,由Roxygen生成的我的名称空间文件具有线:

importFrom(ReporteRs,as.FlexTable)
...
S3method(as.FlexTable,huxtable)
...
export(as.FlexTable)

我不想将记者放入导入中:在描述文件中,因为它涉及对Java的大外部依赖。但是,当我将其提出建议时:R CMD check给了我"命名空间依赖性不需要"之类的错误。

无论如何,我可以在不进行硬依赖的情况下扩展通用吗?

导入是一个困难的依赖性。有些人不正式导入,但使用<pkgNamespace>::<obj>相反,在可用性上对其代码进行条件划分那个名称空间。我根本不建议这样做,尤其不是扩展通用。

我建议您与ReporteRs的维护者交谈:

  1. 您可以使用常见(尚未创建)非常小的包装说flexS3generics您要使用S3仿制药(和S4)两者都从那个迷你包装中进口。您将是该软件包的作者。

  2. 如果您的包裹小得多(在其足迹中,包括依赖关系)比"记者"她/他可能同意进口s3 generic从包装中而不是相反。

两者都是干净的解决方案,在释放到cran时都需要一些时间协调" 1)"更容易:一旦flexS3generics释放到cran,将您的包裹(s)更改为 importFrom(flexS3generics, as.FlexTable),但这些变化和克兰然后,提交是彼此独立的。

((口味:我强烈喜欢as.flexTable(小写)))

最新更新