Aby odpowiedzieć, muszę podać trochę kontekstu.
Dla celów odtwarzalności, próbuję pisać scenariusze, w tym całą konfigurację R. Mam skrypt "initializeR.r", który między innymi instaluje pakiety, a ja przygotowałem pakiety w pakietach, takich jak te związane z cacheingiem, te związane z wizualizacją, próbkowaniem, statystykami przestrzennymi itp. - moje własne małe widoki zadań, jeśli chcesz.
Na przykład, oto fragment:
# Profiling & testing
Packages$CodingTools = c("codetools","debug", "profr","proftools","RUnit")
łączę kilka wiązek do „poważnej” pakietów (lub podstawowej) listy i inni idą na „wtórnym” listy. Na pewno zainstaluję wszystko na głównej liście - są one potrzebne, aby mieć rozsądne środowisko R, używać własnych skryptów, funkcji i pakietów itp. (Btw, niektóre pakiety są przypisane do wielu pakietów, ale tylko kilka; Usuwam duplikat przed przetworzeniem zbiorczej listy.)
Następnie określę domyślną bibliotekę domyślną dla platformy i zainstaluję ją tam. Ta możliwość jest jednak rozszerzalna i ten pomysł można rozszerzyć o opcjonalne lokalizacje dla każdego pakietu pakietów (lub pakietu): wystarczy mapować z nazwy pakietu, np. "CodingTools" do unikalnego katalogu (ścieżka biblioteki), powiedz "D:/R/Library/CodingTools". Można to zrobić w skrypcie inicjalizacyjnym, z opcjami domyślnymi dla pasujących list, lub lokalizacje mogą być przechowywane gdzie indziej, takie jak tablica asocjacyjna, JSON lub baza danych.
Jak powiedzieli inni, domyślne ścieżki biblioteki muszą zostać przekazane R. Można to zrobić na stronie .RProfile.site. W moim przypadku mam inny skrypt, który jest używany do zainicjowania instancji R, tak jakbym chciał. Próbuję unikać zewnętrznych plików parametrów, które są odczytywane przez R (na przykład .Rprofile), a zamiast tego wszystkie inicjalizacje są wywoływane przez funkcje w moim własnym pakiecie (chociaż parametry są nadal zewnętrzne). To ułatwia mi debugowanie i odtwarzanie mojej pracy. Tak więc ścieżki mojej biblioteki mogą być zawarte w tym samym rodzaju JSON, w którym określone są moje lokalizacje plików danych.
Osobiście chcę odejść od definiowania pakietów wewnątrz skryptu i zamiast tego używać JSON, ponieważ mogę łatwiej tworzyć różne pliki JSON dla różnych konfiguracji konfiguracji. Już to robię dla większości innych celów powtarzalnej pracy.
Oto [powiązane i użyteczne pytania i odpowiedzi] (http://stackoverflow.com/questions/2988559/how-do-you-use-multipleversions-the-same-r-package). – Iterator