2014-04-30 54 views
5

我正在實現一個R包,其中我在'data'文件夾中有幾個大的.rda數據文件。從R包構建排除數據集

當我構建包(使用R CMD構建以創建.tar.gz壓縮文件)時,數據文件也包含在包中,並且由於它們非常大,因此使構建(以及檢查)過程非常緩慢,而最終的封裝尺寸無用地大。

這些數據是通過包的函數從某個數據庫下載的,因此其目的不是將數據包括在包中,而是讓用戶從其自己的數據庫中填充數據文件夾。我使用的數據是用於測試的,將它們包含到包中是沒有意義的。

總結我的問題是:是否可以將數據保存在'data'文件夾中,但是將它們從構建的包中排除?

編輯

好吧,我找到了第一個解決方案通過創建一個名爲.Rbuildignore文件,其中包含一個行:

^data/.+$ 

反正問題仍然存在對R CMD安裝和R CMD檢查過程中,沒有考慮到.Rbuildignore文件。

任何建議也從安裝/檢查進程中排除文件夾?

回答

4

如果你使用.Rbuildignore你應該先建立然後檢查你的包(這不是檢查忽略)。在這裏,在一個Debian環境中的一些測試和隨機包裝:

[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 

現在我創建正是您.Rbuildignore

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

好吧,讓我們構建

[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’ 

精細(你看到有關消息yapomif /數據)。現在,檢查包

[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) 
... 

...一切如常

現在讓我們來檢查文件(移動到主目錄,以保持我的 發展DIR乾淨)

[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]:~$ ls yapomif 
DESCRIPTION man NAMESPACE R 

所以沒有數據目錄

但是如果

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

... 

Undocumented data sets: 
    ‘Formaldehyde’ 

所以,如上所述,先建立,然後檢查。

HTH,盧卡

+1

@Nicola我希望我的測試是有用的,因爲現在它的下一個階段......但你不能使用該功能在網絡上的某個地方檢索較小的數據集,以使小插曲完全可重現? –