开发 R 包时避免导入包
Avoiding importing packages when developing an R package
假设我正在开发一个 R 包,其中我只使用包“P”中的一个函数(例如,函数“F”)。
我会使用函数“F” 的 输出在我的函数 中做其他事情。
为此,我会在描述的“导入:”部分中包含包“P”。
因为“P”是要导入的包,当有人安装我的包时,她最终也会安装包“P”,因为我使用了一个它的函数,函数“F”,在我的包中的一些函数中。
我的问题如下:
- 如何避免强制用户安装整个包“P”?
- 也就是说,我可以让用户只安装包“P”中的功能“F”吗?
- 我能否只将“F”函数的源代码复制并粘贴到我的程序包中,这样用户就不必安装整个程序包“P”?
- 问题 3 的答案是否取决于包“P”所在的许可证?
这里是您问题的答案
如果该软件包不可用,则使您的功能不可用或功能失调。您的函数必须检查包 P 是否可用,如果不可用,则抛出错误或警告和 return。这意味着用户可以决定安装包 P 以获得您的包的功能。
不行
也许,见4。实际上这取决于。
是。
答案 1 对我来说是最简单的推荐,如果限制(减少的功能)对您和您的包裹没问题的话。
3 号公路是另一个可行的选择。这取决于几件事。
首先是许可证。
除此之外,没有什么能真正阻止您。
但是 - 我会花一些时间来改善这种情况。
P包是不是设计的不好?肿了吗?我会联系作者并解释问题。人们聚在一起交谈可以轻松地解决各种问题。他或她可能是一个好人,欢迎对他或她的工作感兴趣。大多数人都是。
将社区代码库分割开来(就像你从其他包中提取内容一样),从整体上看可能不太好。
假设我正在开发一个 R 包,其中我只使用包“P”中的一个函数(例如,函数“F”)。 我会使用函数“F” 的 输出在我的函数 中做其他事情。
为此,我会在描述的“导入:”部分中包含包“P”。
因为“P”是要导入的包,当有人安装我的包时,她最终也会安装包“P”,因为我使用了一个它的函数,函数“F”,在我的包中的一些函数中。
我的问题如下:
- 如何避免强制用户安装整个包“P”?
- 也就是说,我可以让用户只安装包“P”中的功能“F”吗?
- 我能否只将“F”函数的源代码复制并粘贴到我的程序包中,这样用户就不必安装整个程序包“P”?
- 问题 3 的答案是否取决于包“P”所在的许可证?
这里是您问题的答案
如果该软件包不可用,则使您的功能不可用或功能失调。您的函数必须检查包 P 是否可用,如果不可用,则抛出错误或警告和 return。这意味着用户可以决定安装包 P 以获得您的包的功能。
不行
也许,见4。实际上这取决于。
是。
答案 1 对我来说是最简单的推荐,如果限制(减少的功能)对您和您的包裹没问题的话。
3 号公路是另一个可行的选择。这取决于几件事。
首先是许可证。
除此之外,没有什么能真正阻止您。
但是 - 我会花一些时间来改善这种情况。
P包是不是设计的不好?肿了吗?我会联系作者并解释问题。人们聚在一起交谈可以轻松地解决各种问题。他或她可能是一个好人,欢迎对他或她的工作感兴趣。大多数人都是。
将社区代码库分割开来(就像你从其他包中提取内容一样),从整体上看可能不太好。