Gdzie R przechowuje paczki?

207

install.packages()Funkcja w R jest automatyczne narzędzie rozpakowujące który pobiera i zainstalowania pakietów w R.

  1. Jak dowiedzieć się, który katalog R wybrał do przechowywania pakietów?

  2. Jak mogę zmienić katalog, w którym R przechowuje i uzyskuje dostęp do pakietów?

Milktrader
źródło

Odpowiedzi:

248

Komenda install.packages przegląda zmienną .libPaths. Oto, co domyślnie jest moja w OSX:

> .libPaths()
[1] "/Library/Frameworks/R.framework/Resources/library"

Domyślnie nie instaluję tam pakietów, wolę mieć je zainstalowane w moim katalogu domowym. W moim .Rprofile mam następującą linię:

.libPaths( "/Users/tex/lib/R" )

Spowoduje to dodanie katalogu „/ Users / tex / lib / R” z przodu zmiennej .libPaths.

James Thompson
źródło
to właśnie chciałbym zrobić, ale jak uzyskać dostęp i .prprile?
Podpowiedź
7
To jest plik . Ponownie przeczytaj dokładny podręcznik i / lub pomoc (uruchomienie).
Dirk Eddelbuettel
44

Jest to udokumentowane w podręczniku „R Instalacja i administracja” dostarczonym z instalacją.

Na moim Linux-ie:

R> .libPaths()
[1] "/usr/local/lib/R/site-library" "/usr/lib/R/site-library"      
[3] "/usr/lib/R/library"           
R> 

co oznacza, że ​​domyślna ścieżka jest pierwszą z nich. Możesz to zmienić za pomocą argumentu na oba install.packages()(od wewnątrz R) lub R CMD INSTALL(poza R).

Możesz również zastąpić, ustawiając zmienną R_LIBS_USER.

Dirk Eddelbuettel
źródło
Mam komputer z systemem Windows Vista, ale zakładając, że ta sama procedura istnieje, czy określasz katalog na liście argumentów install.packages () wraz z nazwą pakietu?
Milktrader
3
Czy już odkryłeś „pomoc (install.packages)”? Zobacz także „pomoc (uruchomienie)”, jak na mój ostatni komentarz. I czytaj te instrukcje. Na koniec, na * doze zwykle ustawiam R_LIBS = "C: / opt / R / library" w pliku .Renviron. Wiem, że też o to spytasz - przeczytaj więc pomoc (Autostart). Dobrze? ;-)
Dirk Eddelbuettel
1
Mam kilkanaście instrukcji R na moim Kindle (w tym ponad 3000 stron na pierwszej stronie) i nie wiedziałem o pliku pomocy Startup. Czytam instrukcje i wpadłem w ślepy zaułek. Pomyśl, że to była prosta odpowiedź. Czy tracę punkty za pytania RTFM <- Nie mam wielu do stracenia. Jeszcze raz dziękuję, Dirk. Do zobaczenia w R / Finance w przyszłym tygodniu. Ramping umiejętności R najlepiej jak potrafię, aby nie dać się odkurzyć podczas prezentacji.
Milktrader
1
Strona 3000+ to zestawienie wszystkich stron pomocy - najmniej pomocna. Wspomnienie „Instalacja i administrator” powinno być bardzo przydatne do tego, czego tu szukasz.
Dirk Eddelbuettel
czy istnieje równoważny sposób na znalezienie ich z wiersza poleceń bash? czyli zmienna środowiskowa, która określa, gdzie biblioteki R są zainstalowane, jeśli $R_LIBSi $R_LIBS_USERnie są ustawione? (Chcę móc wykonać skrypt R w inst/katalogu zainstalowanego pakietu) w dowolnym systemie Unix.
David LeBauer
12

Dzięki za wskazówki od powyższych dwóch ankieterów. Sugestia Jamesa Thompsona działała najlepiej dla użytkowników systemu Windows.

  1. Przejdź do miejsca, w którym jest zainstalowany program R. Jest to określane jak R_Homew literaturze. Gdy go znajdziesz, przejdź do podkatalogu / etc.

    C:\R\R-2.10.1\etc
  2. Wybierz plik w tym folderze o nazwie Rprofile.site. Otwieram go za pomocą VIM. Przekonasz się, że jest to plik nagi z mniej niż 20 liniami kodu. Wstawiłem do kodu:

    # my custom library path
    .libPaths("C:/R/library")

    (Dodano komentarz, aby śledzić, co zrobiłem z plikiem).

  3. W R, wpisanie .libPaths()funkcji daje pierwszy cel wC:/R/Library

UWAGA: istnieje prawdopodobnie więcej niż jeden sposób na osiągnięcie tego, ale inne metody, które wypróbowałem, nie działały z jakiegoś powodu.

Milktrader
źródło
1
Skopiowałem wklejony wiersz .libPaths=("C:/R/library")do mojego pliku Rprofile.site . Uruchamiam 64-bitową wersję R 2.13.1 i pojawia się błąd: Błąd: nie można zmienić wartości zablokowanego wiązania dla „.libPaths”. Używam systemu Windows 7.
Fred
1
Zobacz odpowiedź Dave'a : powinna być .libPaths("...")(rozmowa, a nie zadanie).
CodeFox
0

Nie chcesz znaku „=”

Użyj .libPaths("C:/R/library")w Rprofileswoim pliku .site

I upewnij się, że masz poprawny symbol (Shift-2)

Dave
źródło