R 从可选包扩展S3泛型

R 从可选包扩展S3泛型,r,generics,R,Generics,我有一个为其对象提供as.FlexTable方法的方法,它扩展了ReporteRs包中的S3泛型。因此,我的名称空间文件由roxygen生成,包含以下行: importFrom(ReporteRs,as.FlexTable) ... S3method(as.FlexTable,huxtable) ... export(as.FlexTable) 我不太想将报告器放在导入中:放在描述文件中,因为它涉及到对Java的巨大外部依赖。但是,当我将它放入建议:,R CMD check会给我一些错误,比如

我有一个为其对象提供as.FlexTable方法的方法,它扩展了ReporteRs包中的S3泛型。因此,我的名称空间文件由roxygen生成,包含以下行:

importFrom(ReporteRs,as.FlexTable)
...
S3method(as.FlexTable,huxtable)
...
export(as.FlexTable)
我不太想将报告器放在导入中:放在描述文件中,因为它涉及到对Java的巨大外部依赖。但是,当我将它放入建议:,R CMD check会给我一些错误,比如名称空间依赖关系不是必需的


我是否可以扩展泛型而无需硬依赖?

导入是硬依赖。 有些人不正式导入,而是使用: 相反,并根据 这个名称空间。 我一点也不建议这样做,尤其是对于 扩展泛型

我建议你和记者的维护者谈谈:

您可以使用一个通用但非常小的包,比如FlexS3泛型 它提供S3泛型和S4 if。。你想用 都是,然后你和她/他都从那个迷你软件包中导入。 你们两个都是那个包的作者

如果您的软件包占用空间小得多,包括 与“记者”相比,她/他可能同意导入 S3从您的软件包中删除,而不是从其他方面删除

两者都是干净的溶液,在释放到CRAN时都需要一些时间协调, “1”更容易:一旦FlexS3泛型发布到 克兰,把你的两个包裹都换成 importfromflexs3泛型,如.FlexTable,但这些更改和CRAN 然后,提交的内容彼此独立


品味:我非常喜欢as.flexTable小写字母f

你可能会在r-devel列表中得到更快的响应:我可能应该知道,但是谁是Martin Maechler?NB Martin:我更喜欢使用flextable,但这不是我的要求,该软件包已经存在5年多了。。。。