2014-04-30 12 views
5

Wdrażam pakiet R, w którym mam kilka dużych plików danych .rda w folderze "dane".Wyklucza zestawy danych z budowania pakietu R

Kiedy buduję pakiet (z kompilacją R CMD, aby utworzyć spakowany plik .tar.gz), również pliki danych są zawarte w pakiecie, a ponieważ są naprawdę duże, powoduje to kompilację (jak również check) przetwarza się bardzo wolno, a ostateczny rozmiar pakietu jest bezużyteczny.

Dane te są pobierane z pewnej bazy danych za pośrednictwem funkcji pakietu, więc celem nie jest uwzględnienie danych w pakiecie, ale umożliwienie użytkownikowi wypełnienia folderu danych z własnej bazy danych. Dane, których używam, są przeznaczone do testów i nie ma sensu włączać ich do pakietu.

Podsumowując moje pytanie: czy można przechowywać dane w folderze "dane", ale wykluczyć je z wbudowanego pakietu?

Edit

Ok, znalazłem pierwszego rozwiązania, tworząc plik o nazwie .Rbuildignore który zawiera linię:

^data/.+$ 

i tak pozostaje problem dla zainstalowania i procesów kontrolnych R CMD R CMD, które nie uwzględniają pliku .Rbuildignore.

Każda sugestia, aby wykluczyć folder również z procesów instalacji/kontroli?

Odpowiedz

4

Jeśli używasz .Rbuildignore powinieneś najpierw skompilować, a następnie sprawdzić pakiet (nie jest to ignorowanie czeku). Oto kilka testów w środowisku Debian i pakiet random:

[email protected]:~/src/yapomif/pkg$ ls 
data DESCRIPTION man NAMESPACE R 

[email protected]:~/src/yapomif/pkg$ R 
> save(Formaldehyde, file = "data/formal.rda") 

[email protected]:~/src/yapomif/pkg$ ls -l 
totale 20 
drwxr-xr-x 2 l l 4096 mag 1 01:31 data 
-rw-r--r-- 1 l l 349 apr 25 00:35 DESCRIPTION 
drwxr-xr-x 2 l l 4096 apr 25 01:10 man 
-rw-r--r-- 1 l l 1189 apr 25 00:33 NAMESPACE 
drwxr-xr-x 2 l l 4096 apr 25 01:02 R 

[email protected]:~/src/yapomif/pkg$ ls -l data/ 
totale 4 
-rw-r--r-- 1 l l 229 mag 1 01:31 formal.rda 

Teraz tworzę dokładnie swoje .Rbuildignore

[email protected]:~/src/yapomif/pkg$ em .Rbuildignore 
[email protected]:~/src/yapomif/pkg$ cat .Rbuildignore 
^data/.+$ 

Ok zbudujmy

[email protected]:~/src/yapomif/pkg$ cd .. 
[email protected]:~/src/yapomif$ R CMD build pkg 
> tools:::.build_packages() 
* checking for file ‘pkg/DESCRIPTION’ ... OK 
* preparing ‘yapomif’: 
* checking DESCRIPTION meta-information ... OK 
* checking for LF line-endings in source and make files 
* checking for empty or unneeded directories 
Removed empty directory ‘yapomif/data’ 
* building ‘yapomif_0.8.tar.gz’ 

grzywny (pojawi się komunikat o yapomif/data). Teraz sprawdź pakiet

[email protected]:~/src/yapomif$ R CMD check yapomif_0.8.tar.gz 
> tools:::.check_packages() 
* using log directory ‘/home/l/.src/yapomif/yapomif.Rcheck’ 
* using R version 3.1.0 (2014-04-10) 
* using platform: x86_64-pc-linux-gnu (64-bit) 
... 

... wszystko jak zwykle

Teraz sprawdzić plik (przeniesiony do katalogu domowego, aby moje rozwoju dir czysty)

[email protected]:~/src/yapomif$ mv yapomif_0.8.tar.gz ~ 
[email protected]:~/src/yapomif$ cd 
[email protected]:~$ tar xvzf yapomif_0.8.tar.gz 
[email protected]p350v5c:~$ ls yapomif 
DESCRIPTION man NAMESPACE R 

więc tam nie ma katalog danych

ALE jeśli

[email protected]:~/src/yapomif$ R CMD check pkg 

... 

Undocumented data sets: 
    ‘Formaldehyde’ 

Tak, jak stwierdzono, najpierw skompiluj, a następnie sprawdź.

HTH Luca

+1

@Nicola Mam nadzieję, że moje badania były użyteczne, gdyż teraz jest to kolejny etap ... jednak nie można użyć funkcji do pobierania mniejszy zbiór danych gdzieś w sieci w celu uczynienia winietę w pełni powtarzalny? –

Powiązane problemy