2012-03-28 14 views
15

Paketlerimden biri için bir skeç yazıyorum. Bu skeç olarakBir paket vignette içe aktarılmamış paketleri kullanmak mümkün mü?

, ben bu paket değilNAMESPACE veya DESCRIPTION dosyanın Imports bölümünde tarafından ithal ediliyor vardır otehr paketleri ile etkileşime girebilir nasıl göstermek istiyoruz.

Yani, benim skeç bu dış paketleri kullanmak için bir require çağrı atıyorum, ama tabii ki bende ben R CMD check paketi çalıştığınızda NOTE aşağıdadır:

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

etrafında herhangi bir yolu var mı Bu veya bu harici paketleri almalı mıyım yoksa eval=FALSE'u kullanarak vinyet'i "sahte" mi yapmalıyım?

cevap

20

DESCRIPTION dosyanızın Suggests: dosyasına yerleştirin.

p. 6 R extensions manual arasında:

'Suggests ‘bağlıdır’ ve listeler mutlaka gerekli değildir paketleri olarak alan aynı sözdizimini kullanır. Bu, kullanılan paketleri yalnızca örneklerde, testlerde veya vinyetlerde içerir (bkz. Bölüm 1.4 [Yazma paketi vinyetler], sayfa 26) ve işlev gövdesinde yüklü paketler. E.g., paket foo örneğinden bir örnek bar paketinden bir veri kümesi kullandığını varsayalım. O zaman bir kişi tüm örnekler/testler/vinyetler yürütmek istemedikçe foo kullanımı için gerekli değildir: bar, olması ama gerekli değildir. Sürüm gereksinimleri belirtilebilir ve R CMD kontrolü tarafından kullanılan olacaktır. Ayrıca

+0

Teşekkürler Ben, bu hile yaptı - Ben sadece 'Öneriler' alanının arkasındaki yetenekleri net olarak anlamadım. Maalesef biraz RTFM sorusu çıkıyor! – Pierre

3

düzgün o paketin bağlıdır skeç skeç kendisinde bir

% \VignetteDepends{...} 

ifadesi olmalıdır eğer: Ancak Sweave, Part II: Package Vignettes, R News 3/2 (Oct. 2003), 21 - 24.

, senin durumun muhtemelen biraz farklı:

% \\VignetteDepends{pkgxy} kullanmadan if (require ("pkgxy")) kullanıyorum (bazı durumlarda) DESCRIPTION her durumda gereklidir) Kullanıcıyı, önerilen tüm pacakgeslerin kurulu olduğu yere zorlamak istemiyorum. Bu paketlerin hangileri olduğunu bildirdiğim ve vinyet oluşturulduğunda bir paketin mevcut olmadığı bir skeçin başına bir kutu koydum, "bunu yapmak için bir pkgxy gerekiyor" metni vinyete koyulur.

"introduction" vignette of package hyperSpec örneğidir (aslında nasıl çalıştığını öğrenmek için, yalnızca the .Rnw'a değil, some more definitions'a da gereksiniminiz vardır).

+0

Netleştirdiğiniz için teşekkürler! HyperSpec "giriş" bağlantısının bağlantısı kesildi, belki de en iyi [buradan] (http://hyperspec.r-forge.r-project.org/) başlıyor. – dardisco

+0

@dardisco: teşekkürler - Bozuk bağlantıyı onardım. – cbeleites

İlgili konular