是否可以在包装插图中使用非导入的包?

时间:2012-03-28 01:20:38

标签: r

我正在为我的一个包装写一个小插图。

在这个小插图中,我想演示一下这个软件包如何与{strong} NAMESPACE部分 导入的otehr软件包进行交互。 Imports档案。

所以,我正在调用DESCRIPTION来在我的插图中使用这些外部包,但当我尝试require包时,我当然得到了以下NOTE:< / p>

R CMD check

有没有解决方法,或者我应该导入这些外部包还是使用* checking for unstated dependencies in vignettes ... NOTE ‘library’ or ‘require’ call not declared from: ‘RColorBrewer’ “假冒”小插图?

2 个答案:

答案 0 :(得分:28)

将其放入Suggests:文件的DESCRIPTION

从p。 R extensions manual中的6个:

  

'Suggests'字段使用与'Depends'和列表相同的语法   不一定需要的包裹。这包括使用的包   仅在示例,测试或小插曲中(参见第1.4节[编写包   小插图],第26页),以及在函数体中加载的包。   例如,假设包foo中的示例使用包中的数据集   bar。然后,除非有人愿意,否则没有必要bar使用foo   执行所有examples / tests / vignettes:拥有bar非常有用,   但没必要。可以指定版本要求,并且将是   由R CMD check使用。

答案 1 :(得分:4)

此外,如果小插图正确依赖于该包,则应该有

% \VignetteDepends{...}
小插图中的

声明:Sweave, Part II: Package Vignettes, R News 3/2 (Oct. 2003), 21 - 24.

但是,你的情况可能有点不同:

我使用if (require ("pkgxy"))时没有% \\VignetteDepends{pkgxy}(无论如何需要说明Suggests: pkgxy)我要展示的一些内容但是我不想强迫用户拥有所有内容建议的pacakges安装。我在小插图的开头放了一个方框,我在其中报告哪些包可用,如果在构建小插图时没有包,则需要“pkgxy来执行此操作”文本放入小插图。

"introduction" vignette of package hyperSpec就是一个例子(要了解其实际运作方式,您不仅需要the .Rnw,还需要some more definitions)。