【发布时间】:2015-09-01 10:54:51
【问题描述】:
我正在编写一个 R 包,我想使用另一个包中的一个函数 (plotKML)。这个外部包有很多依赖项,我不希望我的用户被要求下载等等。如果我在 NAMESPACE 文件中使用importFrom(plotKML, readGPX),它会将所有plotKML 加载到命名空间中并下载我没有的所有依赖项不想。
所以问题是:为我需要的一个函数复制代码是否合适(确保包含该函数中的所有依赖项)?如果是,那么归属/文档适合什么——我是否要从原件中复制文档?
this post 对此问题进行了很好的讨论,Brian Diggs 的回答非常有帮助。但他以“对于您的示例,您最好将 memisc::describe 的代码复制到您的包中,尽管这种方法有其自身的问题和警告”结束,所以我对问题是什么感到有些不确定,并且从归因的角度来看是否合适。
【问题讨论】:
-
该函数的代码是否在没有依赖关系的情况下运行?
-
该函数依赖于 XML 包中的一些函数,无论如何我都需要导入,所以没问题。否则,它不需要导入中列出的任何其他包中的函数(需要近 20 个包!)请参阅 here 了解 plotKML 所需的列表。
-
我假设您的大多数用户都会安装至少一半的 plotKML 导入包。
-
关于归属的问题可能最好通过联系包作者并简单询问来解决。主要的缺点可能是您将负责维护该函数的单独并行版本。
-
回应 Roland —— 即使用户有一半的软件包,它仍然需要安装大约 10 个额外的(RSAGA、pixmap、dismo 等)。在我看来,这个负载太高了。