Zmiana domyślnej ścieżki biblioteki r przy użyciu.libPaths w Rprofile.strona nie działa

Używam R w systemie Windows, nie jako administrator. Gdy instaluję pakiet, następujące polecenie nie działa:

> install.packages("zoo")
Installing package(s) into ‘C:/Program Files/R/R-2.15.2/library’
(as ‘lib’ is unspecified)
Warning in install.packages :
  'lib = "C:/Program Files/R/R-2.15.2/library"' is not writable

Aby zainstalować pakiet, muszę podać lokalizację biblioteki:

install.packages("zoo", lib="C:/software/Rpackages")

Aby załadować pakiet, muszę również określić lokalizację biblioteki:

library("zoo", lib.loc="C:/software/Rpackages")

Wszystko jest OK, ale chciałem zobaczyć, czy mogę jakoś dodać C:/software/Rpackages do ścieżki biblioteki i tym samym nie muszę jej wpisywać za każdym razem.

Gdy szukałem w Internecie, znalazłem ten jeden sposób, aby jest to edycja pliku Rprofile.site i dodanie linii

.libPaths("C:/software/Rpackages")

Jednak po zrobieniu tego i uruchomieniu RStudio, jest to wyjście, które otrzymuję

> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library" 

.libPaths polecenie, które dodałem do Rprofile.site nie wydaje się mieć żadnego efektu! Dlaczego tak jest? A co ważniejsze, jak mogę rozwiązać problem, aby móc instalować i ładować pakiety bez wpisywania w lokalizacji biblioteki?

Uwaga: Jeśli uruchamiam RStudio to polecenie .libPaths() wydaje się działać tak jak powinno do

.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"
Czy to nie dziwne?
Author: 42-, 2013-03-02

11 answers

Zazwyczaj staram się trzymać wszystkie moje pakiety w jednej bibliotece, ale jeśli chcesz dodać bibliotekę, dlaczego nie dodać nowej biblioteki do istniejącej biblioteki:

.libPaths( c( .libPaths(), "~/userLibrary") )

Potem dostaję:

> .libPaths()
[1] "/Library/Frameworks/R.framework/Versions/2.15/Resources/library"
[2] "/Users/davidwinsemius/userLibrary"  

Funkcja .libPaths jest nieco inna niż większość innych funkcji niegraficznych. Działa poprzez efekt uboczny. Funkcje Sys.getenv i Sys.setenv, które raportują i zmieniają zmienne środowiskowe R zostały rozdzielone, ale .libPaths mogą raportować lub zmieniać swój cel. Informacje o R startup proces można przeczytać na stronie pomocy ?Startup, A Materiał RStudio znajduje się na stronie: https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudio

W Twoim przypadku wygląda na to, że RStudio nie respektuje RPROFILE.Ustawienia witryny lub być może jest ich nadpisywanie przez czytanie .Ustawienie Rprofile z jednej z domyślnych wartości RStudio. Należy również wspomnieć, że wynik tej operacji dodaje również zawartość wywołań do .Library i .Library.site , co jest kolejnym powodem, dla którego RStudio - (lub jakikolwiek inny IDE lub zainstalowany w sieci -) hosted R może wykazywać inne zachowanie.

 118
Author: 42-,
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-05-13 16:35:25

Właściwym rozwiązaniem jest ustawienie zmiennej środowiskowej R_LIBS_USER na wartość ścieżki pliku do pożądanego folderu biblioteki, zamiast uzyskiwania RStudio do rozpoznawania pliku RPROFILE.plik strony.

Aby ustawić zmienną środowiskową R_LIBS_USER w systemie Windows, przejdź do Panelu sterowania (Właściwości systemu - > zaawansowane właściwości systemu - > zmienne środowiskowe - > zmienne użytkownika) na żądaną wartość (ścieżkę do folderu biblioteki), np.

Variable name: R_LIBS_USER 
Variable value: C:/software/Rpackages  

Ustawienie R_LIBS_USER zapewni, że biblioteka wyświetli najpierw w górę .libPaths() niezależnie od uruchomienia RStudio bezpośrednio lub klikając prawym przyciskiem myszy plik i "Otwórz", aby uruchomić RStudio.

Rozwiązanie Rprofile może działać, jeśli RStudio jest zawsze uruchamiane przez kliknięcie skrótu RStudio. W tym przypadku, ustawienie domyślnego katalogu roboczego na katalog, w którym znajduje się twój Rprofile będzie wystarczające. Rozwiązanie Rprofile nie działa po kliknięciu na plik, aby uruchomić RStudio, ponieważ zmienia to katalog roboczy z dala od domyślny katalog roboczy.

 158
Author: Paweł Rumian,
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-08-14 16:45:54

Udało mi się rozwiązać problem umieszczając kod w pliku .Rprofile w domyślnym katalogu roboczym.

Najpierw znalazłem lokalizację domyślnego katalogu roboczego

> getwd()
[1] "C:/Users/me/Documents"

Potem użyłem edytora tekstu do napisania prostego pliku .Rprofile z następującą linijką

.libPaths("C:/software/Rpackages")

Wreszcie, kiedy uruchamiam R i uruchamiam .libPaths() otrzymuję pożądane wyjście:

> .libPaths()
[1] "C:/software/Rpackages"               "C:/Program Files/R/R-2.15.2/library"
[3] "C:/Program Files/RStudio/R/library"
 18
Author: I Like to Code,
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
2013-03-04 06:33:38

Jeśli nie masz uprawnień administratora, pomocne może być również otwarcie Rprofile.site - pliku znajdującego się w \r-3.1.0 \ etc i dodanie:

.First <- function(){
  .libPaths("your path here")
}

To ewaluuje polecenie .libPath() bezpośrednio przy starcie

 8
Author: schlusie,
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
2014-04-14 13:46:01
 7
Author: bowen.li,
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-12-14 05:45:00

Znalazłem to, co myślę jest rozwiązaniem tutaj (dziękuję Carl Schwarz na SFU) za dodanie osobistej biblioteki, która jest na stałe (nie musisz definiować jej każdej sesji) rozpoznawane czy za pomocą R lub Rstudio, i RStudio traktuje to jako domyślne na moim komputerze Mac. Nie widziałem tego wyraźnie NA SO, więc podsumowałem kroki, które podali, Dla Windows, a następnie Dla Mac.

Dla systemu operacyjnego Windows 7:

  1. Utwórz katalog na dysku, w którym chcesz mieć własną bibliotekę, np. C:\User\Rlibs (lub inny, do którego masz uprawnienia)

  2. Wyszukaj / przejdź do "edytuj zmienną środowiskową dla swojego konta"

  3. Kliknij " Nowy..."w środku okna" zmienne środowiskowe "

  4. W oknie" Nowa zmienna użytkownika " wpisz R_LIBS dla "Nazwa zmiennej" i ścieżkę do utworzonego katalogu biblioteki osobistej, np. C:\User\Rlibs

  5. Klik OK i powinieneś zobaczyć parę zmienna / wartość w oknie zmienne użytkownika

  6. Kliknij ponownie OK

Teraz po uruchomieniu R (lub Rstudio) i wpisaniu polecenia .libPaths() powinieneś zobaczyć bibliotekę osobistą, którą utworzyłeś, jak również bibliotekę systemową R.

Dla Mac:

  1. W katalogu" Home "lub" username " utwórz folder o nazwie Rlibs

  2. Uruchom aplikację Terminal

  3. "Type": "content" sprawa pasuje.

  4. Wpisz ls -a, aby zobaczyć pełną listę plików w katalogu, która powinna teraz zawierać .Renvrion

  5. Sprawdź, czy .Plik Renviron {[27] } został poprawnie ustawiony: more .Renviron

Uruchom R / Rstudio i wpisz {[0] } i powinieneś zobaczyć nową ścieżkę do swojej osobistej biblioteki.

 6
Author: Whalen,
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-08-18 16:24:31

Miałem problemy ze zrozumieniem tego. gorkypl podał poprawne rozwiązanie powyżej, gdy ostatnio ponownie zainstalowałem mój OS & Rstudio, ale tym razem ustawienie mojej zmiennej środowiskowej nie rozwiązało.

Odinstalowałem zarówno R jak i Rstudio, tworząc katalogi C:\R i C:\Rstudio następnie ponownie zainstalowane oba.

Zdefiniuj zmienną użytkownika R_LIBS_USER do preferowanego katalogu (zgodnie z odpowiedzią gorkypla) i uruchom ponownie komputer, aby załadować zmienną użytkownika. Otwórz Rstudio, błędy powinny być zniknął.

Możesz również użyć Sys.setenv(), aby zmodyfikować r_libs_user do Ścieżki alternatywnej biblioteki, co jest łatwiejsze i nie wymaga ponownego uruchamiania komputera.

Aby zobaczyć, na co jest ustawione R_LIBS_USER: ?Sys.getenv()

Czytanie help(Startup) jest przydatne.

 4
Author: felixmc,
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-03-10 21:24:57

Jeśli domyślna biblioteka pakietów została zmieniona po zainstalowaniu nowej wersji R lub w jakikolwiek inny sposób, możesz dołączyć obie biblioteki do użycia wszystkich pakietów za pomocą poniższych poleceń. Pobranie istniejącej ścieżki biblioteki:

.libPaths()

Teraz ustaw istniejącą i starą ścieżkę:

.libPaths(c(.libPaths(), "~/yourOldPath"))

Mam nadzieję, że to pomoże.
 2
Author: Shivong Birla,
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-03-14 07:07:37

Czytam readme. W tym wspomnieli o użyciu .libPaths () w wierszu poleceń, aby sprawdzić, które ścieżki tam są. Miałem wcześniej 2 ścieżki biblioteczne. Kiedy użyłem polecenia .libpath ("C:/Program Files / R / R-3.2.4 revised / library") tam, gdzie chciałem, zmienił ścieżkę do biblioteki. Kiedy pisałem .libPaths () w wierszu poleceń ponownie pokazała mi poprawną ścieżkę. Mam nadzieję, że to pomoże

 1
Author: Supriya Deverkonda,
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-07-08 04:11:22
getwd()

[1] "C:/Users/........./ software / My R studio " # skopiuj powyższy link z podwójnym odwróconym przecinkiem

.libPaths(new="C:/Users/............/software/My R studio")
#your default path will change for installing pakages 
 0
Author: Sayed Mohammed Zeeshan,
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-02-07 18:14:47

Przyglądałem się temu, ponieważ R miał problemy z instalacją w domyślnej lokalizacji i zamiast tego umieszczał pakiety w folderze tymczasowym. Okazało się, że jest to najnowsza aktualizacja Mcaffee Endpoint Security, która najwyraźniej ma problemy z R. możesz wyłączyć ochronę przed zagrożeniami podczas instalacji pakietów i będzie działać poprawnie.

 -1
Author: Kristen Bystrom,
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-09-18 23:15:47