2012-03-28 18 views
15

Piszę winietkę do jednej z moich paczek.Czy można używać pakietów nie importowanych w winietach do pakowania?

W tym winiet, chciałbym pokazać, jak ten pakiet może wchodzić w interakcje z otehr pakietów, które są nie importowane przez NAMESPACE lub sekcji Imports pliku DESCRIPTION.

Tak, jestem oddanie require wezwanie do korzystania z tych pakietów zewnętrznych w moim winiety, ale oczywiście mam następujący NOTE gdy próbuję R CMD check pakietu:

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

Czy istnieje sposób wokół to, czy powinienem albo zaimportować te pakiety zewnętrzne, albo "sfałszować" winietkę za pomocą eval=FALSE?

Odpowiedz

20

Umieść go w Suggests: pliku DESCRIPTION.

Od str. 6 z R extensions manual:

do „sugeruje” pole wykorzystuje tę samą składnię jak „zależy” i wykazy pakietów, które nie są koniecznie potrzebne. Dotyczy to również pakietów używanych tylko w przykładach, testach lub winietach (patrz sekcja 1.4 [Pisanie paczki winietów], strona 26) oraz pakietów załadowanych do zbioru funkcji. Np. Załóżmy, że przykład z pakietu foo używa zestawu danych z pakietu bar. W takim przypadku nie ma konieczności używania paska, chyba że chcemy wykonać wszystkie przykłady/testy/winiety: przydatne jest posiadanie paska, , ale nie jest to konieczne. Można określić wymagania dotyczące wersji i będzie to używane przez kontrolę R CMD.

+0

Dzięki Ben, to wystarczyło - po prostu nie rozumiałem możliwości kryjących się za polem "Suggests". Przepraszam, że to trochę pytanie z RTFM! – Pierre

3

Ponadto jeżeli winieta właściwie zależy od tego pakietu, nie powinno być

% \VignetteDepends{...} 

oświadczenie w winiet samego: Sweave, Part II: Package Vignettes, R News 3/2 (Oct. 2003), 21 - 24.

Jednak sprawa ewentualnie jest nieco inna:

Używam if (require ("pkgxy")) bez % \\VignetteDepends{pkgxy} (Suggests: pkgxy w OPISU jest potrzebny tak czy inaczej) dla niektórych rzeczy, które chcę s jak, ale gdzie nie chcę zmusić użytkownika do zainstalowania wszystkich sugerowanych pakietów. Na początku winiety umieszczam pudełko, w którym informuję, który z tych pakietów jest dostępny, a jeśli pakiet nie jest dostępny po zbudowaniu winiety, do tego celu potrzebny jest "pkgxy". Tekst jest wstawiany do winiety.

Przykładem może być "introduction" vignette of package hyperSpec (aby dowiedzieć się, jak to działa, trzeba nie tylko the .Rnw, ale także some more definitions).

+0

Dzięki za wyjaśnienie! Link do "wprowadzenia" hiperSpec jest w dół, być może najlepiej zacząć [tutaj] (http://hyperspec.r-forge.r-project.org/) zamiast tego. – dardisco

+0

@dardisco: dzięki - naprawiłem zepsuty link. – cbeleites

Powiązane problemy