开发 R 包时避免导入包

Avoiding importing packages when developing an R package

假设我正在开发一个 R 包,其中我只使用包“P”中的一个函数(例如,函数“F”)。 我会使用函数“F” 的 输出在我的函数 中做其他事情。

为此,我会在描述的“导入:”部分中包含包“P”。

因为“P”是要导入的包,当有人安装我的包时,她最终也会安装包“P”,因为我使用了一个它的函数,函数“F”,在我的包中的一些函数中。

我的问题如下:

  1. 如何避免强制用户安装整个包“P”?
  2. 也就是说,我可以让用户只安装包“P”中的功能“F”吗?
  3. 我能否只将“F”函数的源代码复制并粘贴到我的程序包中,这样用户就不必安装整个程序包“P”?
  4. 问题 3 的答案是否取决于包“P”所在的许可证?

这里是您问题的答案

  1. 如果该软件包不可用,则使您的功能不可用或功能失调。您的函数必须检查包 P 是否可用,如果不可用,则抛出错误或警告和 return。这意味着用户可以决定安装包 P 以获得您的包的功能。

  2. 不行

  3. 也许,见4。实际上这取决于

  4. 是。

答案 1 对我来说是最简单的推荐,如果限制(减少的功能)对您和您的包裹没问题的话。

3 号公路是另一个可行的选择。这取决于几件事。

首先是许可证。

除此之外,没有什么能真正阻止您。

但是 - 我会花一些时间来改善这种情况。

P包是不是设计的不好?肿了吗?我会联系作者并解释问题。人们聚在一起交谈可以轻松地解决各种问题。他或她可能是一个好人,欢迎对他或她的工作感兴趣。大多数人都是。

将社区代码库分割开来(就像你从其他包中提取内容一样),从整体上看可能不太好。