处理可选包依赖关系的正确方法

Nic*_*bbe 6 r package dependency-management

在我正在开发的软件包中,提供了几种不同的估算方法.通常,这些中的每一个都取决于其他软件包提供的功能(在某些情况下,具有版本要求).

到目前为止,我只是简单地将所有这些软件包放在我的描述文件的"依赖"部分,但是我自己的软件包现在"依赖"的软件包的数量,即使对于大多数用户来说只有其中一个将是相关,所以我希望只能根据需要安装/加载包?关于编写R包的文档有时有点简洁,并且自最近的R版本以来有所改变,所以也许这里的任何人都可以提供最新的?

只是为了说明,这是典型的模式:

doSomethingImportant<-function(params, workerFunction)
{
   #blabla
   workerFunction(partofparams)
   #moreblabla
}
Run Code Online (Sandbox Code Playgroud)

然后我会

wfA<-function(partofparams)
{
   #use something from package A
}
Run Code Online (Sandbox Code Playgroud)

和

wfB<-function(partofparams)
{
   #use something from package B
}
Run Code Online (Sandbox Code Playgroud)

并且用户会将此函数称为:

result<-doSomethingImportant(params, wfA)
Run Code Online (Sandbox Code Playgroud)

每个用户通常优先选择其中一个wfX.理想情况下,当用户(第一个)使用其中一个wfX时,我希望按需安装/加载它,但如果不可能,我想尽快发出警告它会失败(在事实上,在我的情况下,在任何实际尝试从doSomethingImportant调用workerFunction之前可能会有很多准备工作,如果最终没有正确的包,那么这一切都会丢失.

您能否建议如何正确处理此问题并尽可能方便用户使用?