23 votes

Est-il possible d'utiliser des paquets non importés dans une vignette de paquet ?

Je suis en train d'écrire une vignette pour un de mes paquets.

Dans cette vignette, je voudrais montrer comment ce paquet peut interagir avec d'autres paquets qui sont no importé par le NAMESPACE ou par le Imports de la section DESCRIPTION fichier.

Donc, je mets un require pour utiliser ces paquets externes dans ma vignette, mais bien sûr, j'ai obtenu ce qui suit NOTE quand j'essaie de R CMD check le paquet :

* checking for unstated dependencies in vignettes ... NOTE
‘library’ or ‘require’ call not declared from: ‘RColorBrewer’

Y a-t-il un moyen de contourner ce problème, ou dois-je soit importer ces paquets externes, soit "truquer" la vignette à l'aide de eval=FALSE ?

32voto

Ben Bolker Points 50041

Mettez-le dans Suggests: de votre DESCRIPTION fichier.

Extrait de la page 6 du Manuel des extensions R :

Le champ "Suggests" utilise la même syntaxe que le champ "Depends" et liste les paquets qui ne sont pas nécessairement nécessaires. Cela inclut les paquets utilisés uniquement dans les exemples, les tests ou les vignettes (voir Section 1.4 [Écrire des vignettes de vignettes], page 26), et les paquets chargés dans le corps des fonctions. Par exemple, supposons qu'un exemple du paquet foo u bar . Il n'est donc pas nécessaire d'avoir bar utiliser foo u d'exécuter tous les exemples/tests/vignettes : il est utile d'avoir des bar , mais ce n'est pas nécessaire. Les exigences de version peuvent être spécifiées, et seront utilisées par R CMD check .

6voto

cbeleites Points 5667

De plus, si la vignette dépend correctement de ce paquet, il devrait y avoir un fichier de type

% \VignetteDepends{...}

dans la vignette elle-même : Sweave, Part II : Package Vignettes, R News 3/2 (Oct. 2003), 21 - 24.

Cependant, votre cas est peut-être un peu différent :

J'utilise if (require ("pkgxy")) sans % \\VignetteDepends{pkgxy} ( Suggests: pkgxy dans la DESCRIPTION est nécessaire de toute façon) pour certaines choses que je veux montrer mais où je ne veux pas forcer l'utilisateur à avoir tous les paquets suggérés installés. Je place une case au début de la vignette où je signale quels paquets sont disponibles et si un paquetage n'est pas disponible lorsque la vignette est construite, un texte "pkgxy est nécessaire pour faire ceci" est placé dans la vignette.

En vignette "introduction" du paquet hyperSpec est un exemple (pour savoir comment il fonctionne réellement, il faut non seulement le .Rnw mais aussi quelques définitions supplémentaires ).

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X