Używam R w systemie Windows, a nie jako administrator. Po zainstalowaniu pakietu 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ę określić 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 to jest w porządku, ale chciałem sprawdzić, czy mogę C:/software/Rpackages
jakoś dodać do ścieżki biblioteki, a więc nie muszę jej wpisywać za każdym razem.
Podczas wyszukiwania online znalazłem, że jednym ze sposobów jest edycja Rprofile.site
pliku i dodanie wiersza
.libPaths("C:/software/Rpackages")
Jednak po zrobieniu tego i uruchomieniu RStudio otrzymuję dane wyjściowe
> .libPaths()
[1] "C:/Program Files/R/R-2.15.2/library" "C:/Program Files/RStudio/R/library"
Wydane .libPaths
przeze mnie polecenie Rprofile.site
wydaje się nie mieć żadnego efektu! Dlaczego tak jest? A co ważniejsze, jak mogę rozwiązać problem, aby móc instalować i ładować pakiety bez wpisywania lokalizacji biblioteki?
Uwaga: jeśli uruchomię RStudio, .libPaths()
polecenie wydaje się działać tak, jak powinno
.libPaths("C:/software/Rpackages")
> .libPaths()
[1] "C:/software/Rpackages" "C:/Program Files/R/R-2.15.2/library"
Czy to nie dziwne?
źródło
install.packages("zoo")
nie działa? Komunikat o błędzie itp.?install.packages("zoo")
--- ale to nie jest moje prawdziwe pytanie, które dotyczy tego, dlaczego.libPaths()
inRprofile.site
nie działa.Odpowiedzi:
Zasadniczo staram się przechowywać wszystkie moje pakiety w jednej bibliotece, ale jeśli chcesz dodać bibliotekę, dlaczego nie dołączyć nowej biblioteki (która musi już istnieć w systemie plików) do istniejącej ścieżki biblioteki?
Lub (a to sprawi, że userLibrary będzie pierwszym miejscem do umieszczania nowych pakietów):
Potem dostaję (przynajmniej z powrotem, kiedy napisałem to pierwotnie):
Ta
.libPaths
funkcja różni się nieco od większości innych funkcji nie graficznych. Działa poprzez efekt uboczny. FunkcjeSys.getenv
iSys.setenv
raportujące i zmieniające zmienne środowiskowe R zostały rozdzielone, ale.libPaths
mogą raportować lub zmieniać swój cel.Informacje o procesie uruchamiania R można przeczytać na
?Startup
stronie pomocy, a materiał RStudio znajduje się na stronie : https://support.rstudio.com/hc/en-us/articles/200549016-Customizing-RStudioW twoim przypadku wydaje się, że RStudio nie przestrzega ustawień Rprofile.site lub może je zastępuje, czytając ustawienie .Rprofile z jednego z domyślnych ustawień RStudio. Należy również wspomnieć, że wynik tej operacji dołącza również treść połączeń do
.Library
i.Library.site
, co jest kolejnym powodem, dla którego RStudio - (lub dowolne inne IDE lub sieć zainstalowana -) hostowane R może wykazywać inne zachowanie.Ponieważ
Sys.getenv()
zwraca bieżące środowisko systemowe dla procesu R, bibliotekę i inne ścieżki można wyświetlić za pomocą:Dwa, które mają znaczenie dla przechowywania i uzyskiwania dostępu do pakietów to (teraz różne w Linux-ie):
źródło
c()
wektor, aby nowe biblioteki trafiły do folderu niestandardowego.libPaths
funkcja -f ma domyślnie ten sam efekt. Istnieje również różnica między systemami operacyjnymi pod względem sposobu obsługi końcowych ukośników. (Nie OK w Windows). Istnieją inne opcje. Zobacz?.libPaths
file.exists
i kontynuować tylko wtedy, gdy nie brakuje ścieżki.Właściwym rozwiązaniem jest ustawienie zmiennej środowiskowej
R_LIBS_USER
na wartość ścieżki pliku do pożądanego folderu biblioteki, w przeciwieństwie do rozpoznawania pliku Rprofile.site przez RStudio.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 pożądaną wartość (ścieżkę do folderu biblioteki), np.Ustawienie R_LIBS_USER zapewni, że biblioteka pojawi się najpierw w .libPaths () niezależnie od uruchomienia RStudio bezpośrednio lub poprzez kliknięcie pliku prawym przyciskiem myszy i „Otwórz za pomocą”, aby uruchomić RStudio.
Rozwiązanie Rprofile może działać, jeśli RStudio jest zawsze uruchamiane przez kliknięcie skrótu RStudio. W takim przypadku wystarczy ustawić domyślny katalog roboczy na katalog, w którym znajduje się plik Rprofile . Rozwiązanie Rprofile nie działa po kliknięciu pliku, aby uruchomić RStudio, ponieważ powoduje to zmianę katalogu roboczego na domyślny.
źródło
.bash_profile
i / lub.bashrc
). Zobacz tutaj: unix.stackexchange.com/questions/117467/... Aby ustawić je dla bieżącej sesji, wpisz tylko konsolęexport R_LIBS_USER='directory_of_your_choice'
Udało mi się rozwiązać problem, umieszczając kod w
.Rprofile
pliku w domyślnym katalogu roboczym.Najpierw znalazłem lokalizację domyślnego katalogu roboczego
Następnie użyłem edytora tekstu, aby napisać prosty
.Rprofile
plik z następującym wierszemWreszcie, kiedy uruchamiam
R
i uruchamiam.libPaths()
, otrzymuję pożądany wynik:źródło
Sys.getenv("HOME")
r w konsoli r. Nie jestem pewien, czy uzyskasz pożądaną wydajność. Myślę, że pożądanym rezultatem jest to, co 42 pokazał w swojej odpowiedzi stackoverflow.com/a/15170774/754550 . Używa .libPaths w nieco inny sposób./superuser/749283/change-rstudio-library-path-at-home-directory
Edytuj ~ / .Renviron
źródło
Znalazłem tutaj rozwiązanie (dziękuję Carl Schwarz z SFU) za dodanie osobistej biblioteki, która jest na stałe (nie musisz jej definiować w każdej sesji) rozpoznaje, czy używasz R czy Rstudio, a Rstudio traktuje to jako domyślnie na moim komputerze Mac. Nie widziałem, żeby to wyraźnie określało to na SO, więc podsumowałem kroki, które oni podali, dla Windowsa, a potem dla Maca.
W przypadku systemu operacyjnego Windows 7:
Utwórz katalog na dysku, na którym chcesz mieć swoją osobistą bibliotekę, np. C: \ User \ Rlibs (lub inny, do którego masz uprawnienia)
Wyszukaj / przejdź do „Edytuj zmienną środowiskową dla swojego konta” na pasku wyszukiwania systemu Windows, aby edytować ustawienia panelu sterowania
Kliknij „Nowy ...” pośrodku okna „Zmienne środowiskowe”
W oknie „Nowa zmienna użytkownika” wpisz „ R_LIBS ” jako „Nazwa zmiennej” i ścieżkę do utworzonego katalogu biblioteki osobistej, np. C: \ User \ Rlibs
Kliknij OK, a powinieneś zobaczyć parę Zmienna / Wartość w oknie Zmienne użytkownika
Kliknij ponownie OK
Teraz po uruchomieniu R (lub Rstudio) i
.libPaths()
wpisaniu polecenia powinieneś zobaczyć utworzoną bibliotekę osobistą, a także bibliotekę systemową R.Dla Maca:
W katalogu „Strona główna” lub „nazwa użytkownika” utwórz folder o nazwie Rlibs
Uruchom aplikację Terminal
Typ:
echo "R_LIBS=~/Rlibs"> .Renvrion
upewnij się, że wielkość liter pasuje.Wpisz,
ls -a
aby zobaczyć pełną listę plików w katalogu, która powinna teraz zawierać .RenvrionSprawdź, czy plik .Renviron został poprawnie ustawiony:
more .Renviron
Uruchom R / Rstudio i wpisz,
.libPaths()
a powinieneś zobaczyć nową ścieżkę do swojej osobistej biblioteki.źródło
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:To ocenia
.libPath()
polecenie bezpośrednio przy starcieźródło
Naprawdę miałem problem ze zrozumieniem tego. gorkypl podał prawidłowe rozwiązanie powyżej, kiedy ostatnio ponownie instalowałem system operacyjny i Rstudio, ale tym razem ustawienie mojej zmiennej środowiskowej nie zostało rozwiązane.
Odinstalowano zarówno R, jak i Rstudio, tworząc katalogi C: \ R i C: \ Rstudio, a następnie ponownie zainstalowano oba.
Zdefiniuj zmienną użytkownika R_LIBS_USER w swoim preferowanym katalogu (zgodnie z odpowiedzią gorkypl) i zrestartuj komputer, aby załadować zmienną użytkownika. Otwórz Rstudio, błędy powinny zniknąć.
Możesz także użyć
Sys.setenv()
do zmodyfikowania R_LIBS_USER do ścieżki alternatywnej biblioteki, co jest łatwiejsze i nie wymaga ponownego uruchamiania komputera.Aby zobaczyć, co R_LIBS_USER jest ustawiony na:
?Sys.getenv()
Czytanie
help(Startup)
jest przydatne.źródło
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, aby korzystały ze wszystkich pakietów za pomocą poniższych poleceń. Uzyskaj istniejącą ścieżkę biblioteki:
.libPaths()
Teraz ustaw istniejącą i starą ścieżkę:
.libPaths(c(.libPaths(), "~/yourOldPath"))
Mam nadzieję, że to pomoże.
źródło
wystarczy zmienić domyślny folder dla bibliotek R w katalogu bez uprawnień administratora, np
źródło
Przeczytałem readme. W tym celu wspomniano o użyciu .libPaths () w wierszu poleceń, aby sprawdzić, które ścieżki są dostępne. Miałem 2 ścieżki biblioteki wcześniej. Kiedy użyłem polecenia .libpath („C: / Program Files / R / R-3.2.4revised / library”) tam, gdzie chciałem, zmieniłem ścieżkę do biblioteki. Kiedy ponownie wpisałem .libPaths () w wierszu poleceń, pokazał mi poprawną ścieżkę. Mam nadzieję że to pomoże
źródło
W systemie Ubuntu zalecanym sposobem zmiany domyślnej ścieżki biblioteki dla użytkownika jest ustawienie
R_LIBS_USER
zmiennej w~/.Renviron
pliku.źródło
skopiuj powyższy link podwójnie odwróconym przecinkiem
Domyślna ścieżka zmieni się przy instalowaniu pakietów
źródło
Jeśli chcesz na stałe zmienić ścieżkę do biblioteki (bez wywoływania .libPath () za każdym razem, gdy wpisujesz w R, działa to dla mnie:
utwórz .Rprofile w swoim katalogu domowym. (~ / .Rprofile)
wpisz
.libPaths(c( .libPaths(), "your new path" ))
plik .Rprofile, zapisz.otwórz R (dowolny katalog) i sprawdź, po prostu wpisz
.libPaths()
, możesz znaleźć aktualizację ścieżki do libaray!źródło
Patrzyłem na to, ponieważ R miał problemy z instalacją w domyślnej lokalizacji i zamiast tego po prostu umieszczałem 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 instalowania pakietów i będzie działać poprawnie.
źródło