2014-04-30 19 views
5

Tôi đang triển khai gói R, nơi tôi có một số tệp dữ liệu .rda lớn trong thư mục 'dữ liệu'.Loại trừ tập hợp dữ liệu khỏi gói xây dựng R

Khi tôi xây dựng gói (với xây dựng R CMD để tạo tệp .tar.gz đóng gói), cũng các tệp dữ liệu được bao gồm trong gói và vì chúng thực sự lớn, điều này làm cho bản dựng (cũng như kiểm tra) quá trình rất chậm, và kích thước gói cuối cùng vô dụng lớn.

Những dữ liệu này được tải xuống từ một số DB thông qua chức năng của gói, vì vậy, mục đích không bao gồm dữ liệu trong gói, nhưng để người dùng điền thư mục dữ liệu từ DB của riêng mình. Dữ liệu mà tôi sử dụng là để kiểm tra và không có ý nghĩa gì khi đưa chúng vào gói.

Tóm tắt câu hỏi của tôi là: có thể giữ dữ liệu trong thư mục 'dữ liệu', nhưng loại trừ chúng khỏi gói được tạo không?

Sửa

Ok, tôi tìm thấy một giải pháp đầu tiên bằng cách tạo ra một file có tên .Rbuildignore có chứa một dòng:

^data/.+$ 

anyway các vấn đề vẫn còn cho quá trình cài đặt và quy trình kiểm tra R CMD R CMD, không tính đến tệp .Rbuildignore.

Bất kỳ đề xuất nào để loại trừ thư mục cũng khỏi quá trình cài đặt/kiểm tra?

Trả lời

4

Nếu bạn sử dụng .Rbuildignore trước tiên bạn nên xây dựng rồi kiểm tra gói của bạn (nó không phải là bỏ qua kiểm tra). Dưới đây là một vài thử nghiệm trong một môi trường Debian và một gói ngẫu nhiên:

[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 

Bây giờ tôi tạo chính xác của bạn .Rbuildignore

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

Ok chúng ta hãy xây dựng

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

Fine (bạn thấy thông báo về yapomif/data). Bây giờ kiểm tra các gói

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

... tất cả mọi thứ như bình thường

Bây giờ hãy kiểm tra các tập tin (chuyển đến thư mục chính để giữ dir phát triển của tôi sạch)

[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 

vì vậy không có thư mục dữ liệu

NHƯNG nếu

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

... 

Undocumented data sets: 
    ‘Formaldehyde’ 

Vì vậy, như đã nêu, hãy xây dựng trước, sau đó kiểm tra.

HTH, Luca

+1

@Nicola Tôi hy vọng thử nghiệm của tôi là hữu ích, vì bây giờ nó là giai đoạn tiếp theo ... tuy nhiên bạn không thể sử dụng chức năng để lấy dữ liệu nhỏ ở đâu đó trên web để làm cho họa tiết hoàn toàn có thể tái sản xuất? –

Các vấn đề liên quan