Jak zmienić domyślną ścieżkę bibliotek dla pakietów R

Próbowałem zainstalować R and R studio na dysku lokalnym na moim komputerze roboczym, w przeciwieństwie do folderu sieciowego organizacji, ponieważ wszystko, co działa przez sieć, jest naprawdę wolne. Podczas instalacji ścieżka docelowa pokazuje, że jest to mój lokalny dysk C:. Jednak gdy instaluję nowy pakiet, domyślną ścieżką jest mój dysk sieciowy i nie ma opcji zmiany:

.libPaths()
[1] "\\\\The library/path/I/don't/want"
[2] "C:/Program Files/R/R-3.2.1/library" 

Używam windows 7 professional. Jak mogę usunąć ścieżkę biblioteki [1] i uczynić ścieżkę [2] moją podstawowy dla wszystkich pakietów podstawowych i wszystkich nowych pakietów, które instaluję?

 17
Author: Marco, 2015-07-29

3 answers

Zobacz help(Startup) i help(.libPaths), ponieważ masz kilka możliwości, w których może to być ustawione. Wśród nich są

  • ustawienie R_LIBS_USER
  • przypisanie .libPaths() w .Rprofile lub Rprofile.site

I więcej.

W tym konkretnym przypadku musisz cofnąć się i odłączyć tam, gdzie jest ustawiony \\\\The library/path/I/don't/want.

Aby go zignorować, musisz nadpisać go jawnie, tzn. poprzez

library("somePackage", lib.loc=.libPaths()[-1])

Podczas ładowania paczki.

 24
Author: Dirk Eddelbuettel,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2015-07-29 18:13:29

Windows 7: Jeśli twój C:\Program Files (lub gdziekolwiek jest zainstalowany R) jest zablokowany do pisania, tak jak mój jest, wtedy będziesz sfrustrowany edycją RProfile.site (tak jak ja). Jak wspomniano powyżej, zaktualizowałem R_LIBS_USER i zadziałało. Jednak nawet po kilkukrotnym przeczytaniu znakomitej instrukcji i rozległych poszukiwaniach Zajęło mi to kilka godzin. W duchu Oszczędzania cudzego czasu...

Załóżmy, że chcesz, aby twoje pakiety znajdowały się w C:\R\Library:

  1. Utwórz folder C:\R\Library
  2. Kliknij Start --> Control Panel --> User Accounts --> Change my environmental variables
  3. wyskakuje okno Environmental Variables. Jeśli widzisz R_LIBS_USER, zaznacz ją i kliknij Edit. W przeciwnym razie kliknij New. Obie akcje otwierają okno z polami dla Variable i Value.
  4. w moim przypadku, R_LIBS_USER już tam był, a wartość była ścieżką do mojego pulpitu. Dodałem do ścieżki folder, który utworzyłem, oddzielony średnikiem, jak wspomniano powyżej. C:\R\Library;C:\Users\Eric.Krantz\Desktop\R stuff\Packages. Uwaga: mogłem usunąć ścieżkę do lokalizacji pulpitu i po prostu lewa C:\R\Library.
 24
Author: Eric Krantz,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2016-08-20 16:34:49

W obliczu tego samego problemu (unikanie domyślnej ścieżki w sieci) doszedłem do tego rozwiązania z podpowiedziami podanymi w innych odpowiedziach.

Rozwiązaniem jest edycja pliku Rprofile w celu nadpisania zmiennej R_LIBS_USER, która domyślnie wskazuje na katalog domowy.

Oto kroki:

  1. Utwórz docelowy folder docelowy dla bibliotek, np., ~\target.
  2. Znajdź plik Rprofile. W moim przypadku było to w C:\Program Files\R\R-3.3.3\library\base\R\Rprofile.
  3. Edytuj plik i zmień definicja zmiennej R_LIBS_USER. W moim przypadku zamieniłem tę linię file.path(Sys.getenv("R_USER"), "R", na file.path("~\target", "R",.

Dokumentacja wspierająca To rozwiązanie jest tutaj

Oryginalny plik z:

 if(!nzchar(Sys.getenv("R_LIBS_USER")))
     Sys.setenv(R_LIBS_USER=
                file.path(Sys.getenv("R_USER"), "R",
                          "win-library",
                          paste(R.version$major,
                                sub("\\..*$", "", R.version$minor),
                                sep=".")
                          )) 

Zmodyfikowany plik:

if(!nzchar(Sys.getenv("R_LIBS_USER")))
     Sys.setenv(R_LIBS_USER=
                file.path("~\target", "R",
                          "win-library",
                          paste(R.version$major,
                                sub("\\..*$", "", R.version$minor),
                                sep=".")
                          ))
 7
Author: Marco,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/doraprojects.net/template/agent.layouts/content.php on line 54
2017-03-07 09:04:19