2013-08-23 36 views
5

Tôi đang làm việc trên một gói R được xây dựng trên cơ sở dữ liệu postgreSQL. Do đó có một số tệp .sql chứa cấu trúc bảng được đề xuất cho cơ sở dữ liệu tương ứng.Nơi đặt các tệp SQL trong một gói R?

Tôi tự hỏi đặt các tệp này ở đâu nếu tôi muốn xây dựng một gói (cho CRAN)?

Trả lời

8

có thể đặt chúng trong thư mục "inst" (cấp cao nhất), như inst/sql sau đó người dùng hoặc một chức năng của bạn có thể truy cập vào

file đó với

base <- system.file('sql', package='bannertpackage') 
sqls <- dir(base, "*sql", f=TRUE) 

và thực hiện chúng

http://cran.r-project.org/doc/manuals/R-exts.html#Package-subdirectories

Nội dung của thư mục con inst sẽ được sao chép đệ quy vào thư mục cài đặt. Subdirectories của inst không nên can thiệp với những người được sử dụng bởi R (hiện tại, R, dữ liệu, demo, exec, libs, người đàn ông, giúp đỡ, html và Meta, và các phiên bản trước đó được sử dụng latex, R-ex). Việc sao chép của inst xảy ra sau khi src được xây dựng để Makefile của nó có thể tạo các tập tin được cài đặt.

Sẽ có một thư mục trên cùng trong thư mục thư viện gọi là sql rất đẹp và bạn có thể truy cập thư mục đó từ R, đó là những gì bạn cần.

+0

Thx! bạn có thể giải thích tại sao bạn cảm thấy inst là đúng nơi không? Btw: Tôi sử dụng devtools/R Studio để xây dựng gói. –

+3

@MattBannert 'inst' là đúng nơi vì nó được cài đặt với gói của bạn. – hadley

+0

điều gì xảy ra nếu tệp .sql của tôi chỉ đơn giản là truy vấn dữ liệu, mà tôi chuyển vào, ví dụ: 'RODBC :: sqlQuery()' để tạo một 'data.frame'? Tôi có nên tạo một thư mục sql/trong trường hợp đó hay không? –

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