Có vị trí được xác định trước trong đó gói R có thể lưu trữ dữ liệu được lưu trong bộ nhớ cache không? Dữ liệu sẽ vẫn tồn tại trong các phiên. Tôi đã suy nghĩ về việc tạo ra một thư mục con của ${R_LIBS_USER}/package_name
, nhưng tôi không chắc chắn nếu điều này là xách tay và nếu điều này là "cho phép" nếu gói của tôi được cài đặt trên toàn hệ thống.Có một vị trí liên tục luôn ghi được có thể được sử dụng làm bộ đệm dữ liệu theo gói không?
Ý tưởng là như sau: Tạo một kịch bản R mydata.R
trong data
thư mục con của gói đó sẽ được thực hiện bằng cách gọi data(mydata)
(theo tài liệu của data()
). Kịch bản lệnh này sẽ tải dữ liệu từ internet và lưu trữ nó, nếu nó chưa được lưu trữ trước đó. (Nếu dữ liệu đã được lưu trữ, bộ đệm sẽ được sử dụng.) Ngoài ra, một chức năng sẽ được cung cấp để làm mất hiệu lực bộ nhớ cache và/hoặc để kiểm tra xem phiên bản dữ liệu mới có sẵn trực tuyến hay không.
Đây là từ tài liệu của data()
:
Hiện nay, bốn định dạng của tập tin dữ liệu được hỗ trợ:
tệp có đuôi '.R' hoặc '.r' là nguồn() d, với thư mục làm việc R thay đổi tạm thời vào thư mục chứa tập tin tương ứng. (Dữ liệu đảm bảo rằng các gói utils được đính kèm, trong trường hợp nó đã được chạy thông qua dữ liệu utils ::.)
...
Thật vậy, việc tạo ra một tập tin fortytwo.R
trong data
thư mục con của một gói với nội dung sau:
fortytwo = data.frame(answer=42)
và sau đó thực hiện data(fortytwo)
tạo ra một biến khung dữ liệu fortytwo
. Bây giờ câu hỏi đặt ra là: Ở đâu sẽ fortytwo.R
lưu dữ liệu vào bộ nhớ cache nếu khó tính toán?
EDIT: Tôi đang nghĩ về việc tạo hai gói: Gói "dữ liệu" cung cấp dữ liệu và gói "mã" hoạt động trên đó. Câu hỏi liên quan đến gói "dữ liệu": Ở đâu có thể lưu trữ các tệp trong bộ nhớ cho mỗi người dùng để lưu trữ trong suốt các phiên R và có thể truy cập từ các dự án R khác nhau?
Related: Package that downloads data from the internet during installation.
Bạn có thể muốn xem https://github.com/hadley/rappdirs - đó là một cổng AppDirs, là thư viện python cố gắng tìm đúng thư mục theo cách cụ thể cho hệ điều hành. – hadley
Chỉ cố gắng làm rõ: Bạn có nghĩa là nơi dữ liệu có thể được lưu trữ sau khi nó đã được xử lý bởi một tập lệnh R không? Nói cách khác, câu hỏi của bạn có thực sự về dữ liệu từ gói dữ liệu hay dữ liệu được tạo ra như là đầu ra từ bất kỳ quá trình xử lý nào đã diễn ra không? Nó * âm thanh * như sau. – A5C1D2H2I1M1N2O1R2T1
@hadley: Có khả năng điều này sẽ sớm xuất hiện trên CRAN không? Nếu không có cách R cụ thể để làm điều này (như đặt nó vào một thư mục con của '$ {R_USER_LIBS}), tôi sẽ sẵn sàng sử dụng gói của bạn. – krlmlr