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

Pie*_*rre 18 r

我正在为我的一个包裹写一个小插图.

在这个小插曲,我想演示如何这个包可以与被otehr包互动不是由进口NAMESPACE或由Imports一节的DESCRIPTION文件.

所以,我正require打电话在我的小插图中使用这些外部包,NOTE但当我尝试R CMD check使用包时,我当然得到以下内容:

* checking for unstated dependencies in vignettes ... NOTE
‘library’ or ‘require’ call not declared from: ‘RColorBrewer’
Run Code Online (Sandbox Code Playgroud)

有没有办法解决这个问题,或者我应该导入这些外部包装还是"假装"使用小插图eval=FALSE

Ben*_*ker 27

把它放在Suggests:你的DESCRIPTION文件中.

从p.R扩展手册中的 6个:

'Suggests'字段使用与'Depends'相同的语法,并列出不一定需要的包.这包括仅在示例,测试或晕影中使用的包(请参见第1.4节[编写包装晕影],第26页),以及在函数体中加载的包.例如,假设包中的示例foo使用包中的数据集 bar.然后没有必要bar使用foo除非有人想要执行所有的examples/tests/vignettes:它是有用的bar,但不是必需的.可以指定版本要求,并将使用R CMD check.


cbe*_*ica 5

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

% \VignetteDepends{...}
Run Code Online (Sandbox Code Playgroud)

小插图本身的声明:Sweave,第二部分:包装小插图,R 新闻 3/2(2003 年 10 月),21 - 24。

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

if (require ("pkgxy"))不使用% \\VignetteDepends{pkgxy}Suggests: pkgxy在描述中无论如何都需要)用于我想展示的一些东西,但我不想强迫用户安装所有建议的pacakges。我在小插图的开头放了一个框,我会在其中报告哪些软件包可用,如果在构建小插图时某个软件包不可用,则将“需要 pkgxy 执行此操作”文本放入小插图中。

包 hyperSpec“介绍”小插图是一个示例(要了解它的实际工作方式,您不仅需要.Rnw还需要更多定义)。