Để trả lời, tôi phải đưa ra một chút ngữ cảnh.
Vì mục đích tái tạo, tôi cố gắng viết kịch bản, bao gồm cả toàn bộ thiết lập R của tôi. Tôi có một kịch bản "initializeR.r", trong số những thứ khác, cài đặt gói và tôi đã sắp xếp các gói trong các gói, chẳng hạn như các gói liên quan đến bộ nhớ đệm, các liên quan đến trực quan hóa, lấy mẫu, thống kê không gian, v.v. nhiệm vụ xem, nếu bạn sẽ.
Ví dụ, đây là một đoạn trích:
# Profiling & testing
Packages$CodingTools = c("codetools","debug", "profr","proftools","RUnit")
tôi kết hợp một số các gói vào một gói "Major" (hay chính) danh sách và những người khác đi vào danh sách "thứ cấp". Tôi chắc chắn sẽ cài đặt mọi thứ trong danh sách chính - cần thiết để có môi trường R hợp lý, sử dụng các tập lệnh, chức năng và gói của riêng tôi, v.v. (Btw, một số gói được gán cho nhiều gói, nhưng chỉ một vài gói; I de-dupe trước khi xử lý danh sách tổng hợp.)
Sau đó tôi chỉ định thư viện mặc định cụ thể cho nền tảng và cài đặt ở đó. Tuy nhiên, khả năng này có thể mở rộng và ý tưởng này có thể được mở rộng để bao gồm các vị trí tùy chọn cho mỗi gói gói (hoặc gói): chỉ bản đồ từ tên gói, ví dụ: "CodingTools" vào một thư mục duy nhất (đường dẫn thư viện), nói "D:/R/Library/CodingTools". Điều này có thể được thực hiện trong tập lệnh khởi tạo, với các danh sách phù hợp & các tùy chọn mặc định hoặc các vị trí có thể được lưu ở nơi khác, chẳng hạn như bảng băm, JSON hoặc cơ sở dữ liệu.
Như những người khác đã nói, đường dẫn thư viện mặc định cần được truyền đạt đến R. Điều đó có thể được thực hiện trong .RProfile.site. Trong trường hợp của tôi, tôi có một kịch bản khác được sử dụng để khởi tạo thể hiện R như tôi muốn. Tôi cố gắng tránh các tệp tham số bên ngoài được đọc bởi R (ví dụ: .Rprofile) và thay vào đó thực hiện tất cả các lần khởi tạo thông qua các cuộc gọi hàm trong gói của riêng tôi (mặc dù các tham số vẫn ở bên ngoài). Điều này có xu hướng giúp tôi gỡ lỗi và tái tạo tác phẩm của mình dễ dàng hơn. Vì vậy, đường dẫn thư viện của tôi có thể được bao gồm trong cùng một loại JSON nơi các vị trí tệp dữ liệu của tôi được chỉ định.
Cá nhân, tôi muốn thoát khỏi việc xác định các gói bên trong tập lệnh và thay vào đó sử dụng JSON, vì tôi có thể dễ dàng tạo các tệp JSON khác nhau cho các cấu hình thiết lập khác nhau. Tôi đã làm điều này cho hầu hết các mục đích khác của công việc tái sản xuất.
Đây là [câu hỏi có liên quan và hữu ích] (http://stackoverflow.com/questions/2988559/how-do-you-use-multiple-versions-of-the-same-r-package). – Iterator