Właśnie zastanawiam się, jak korzystać z mojego klastra uniwersyteckiego. Ma zainstalowane 2 wersje R. Systemowy R 2.11 (Debian 6.0) i R 2.14.2 w niestandardowej lokalizacji.
Próbuję używać MPI razem ze śniegiem. Kod, który próbuję uruchomić, jest następujący
library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()
Działa bez problemów na R 2.11. (Uruchamiam skrypt za pomocą mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R
). Teraz, gdy próbuję to zrobić w wersji 2.14.2, pojawia się następujący komunikat:
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
Wygląda więc na to, że R ładuje pakiet śniegu w wersji skompilowanej dla R 2.11. Zainstalowałem śnieg pod R 2.14 w moim katalogu domowym i dodałem następujące wiersze do mojego kodu:
.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)
Dane wyjściowe przed błędem potwierdzają, że rzeczywiście korzystam z wersji 2.14.2, a mój folder pakietów R znajduje się najpierw na ścieżce wyszukiwania. Ale nadal pojawia się błąd.
Więc moje pytanie brzmi: jak ustalić, która wersja pakietu jest ładowana w R? Widzę ze installed.packages
wszystkimi zainstalowanymi pakietami, więc może jest jakaś funkcja, która wyświetla podobne informacje dla załadowanych pakietów?
Odpowiedzi:
Możesz tego użyć
sessionInfo()
.Jednak, zgodnie z komentarzami i odpowiedzią poniżej, istnieją lepsze opcje
[1] „0.3.9”
Lub:
źródło
packageVersion()
jest znacznie lepszy w większości przypadkówsessionInfo
. Patrz uwaga? SessionInfo: „Informacja o„ załadowanych ”pakietach i przestrzeniach nazw jest aktualną wersją zainstalowaną w miejscu, z którego pakiet został załadowany: może być źle, jeśli inny proces zmieniał pakiety podczas sesji.” Więc: jeśli chcesz wiedzieć, czy paczka jest załadowana czy nie, lepiej użyj"Rmpi" %in% loadedNamespaces()
; jeśli chcesz wiedzieć, która wersja jest zainstalowana w określonej lokalizacji, lepiej użyjpackageVersion(lib.loc = ...)
Możesz użyć,
packageVersion
aby zobaczyć, która wersja pakietu jest ładowanaChociaż brzmi to tak, jakbyś chciał zobaczyć, którą wersję R używasz, ale w takim przypadku
sessionInfo
propozycja @ Justina jest właściwym rozwiązaniemźródło
Aby sprawdzić wersję R, wykonaj:
R --version
Lub po przejściu do powłoki R wydrukuj zawartość
version$version.string
EDYTOWAĆ
Aby sprawdzić wersję zainstalowanych pakietów, wykonaj następujące czynności.
Po załadowaniu biblioteki możesz wykonać
sessionInfo ()
Ale żeby poznać listę wszystkich zainstalowanych pakietów:
LUB, aby wyodrębnić konkretną wersję biblioteki, po wyodrębnieniu informacji za pomocą powyższej
installed.package
funkcji wystarczy użyć nazwy pakietu w pierwszym wymiarze macierzy.Powyżej wydrukuje wersje biblioteki RANN i biblioteki graficznej.
źródło
version
.packinfo[, "Version", drop=F]
daje jeszcze ładniejszy wynik (nazwa pakietu nie jest duplikowana).Technicznie rzecz biorąc, wszystkie odpowiedzi w tym momencie są błędne.
packageVersion
nie zwraca wersji załadowanego pakietu. Przechodzi na dysk i stamtąd pobiera wersję pakietu.W większości przypadków nie robi to różnicy, ale czasem tak jest. O ile wiem, jedynym sposobem na uzyskanie wersji załadowanego pakietu jest raczej hackowanie:
gdzie
pkg
jest nazwa pakietu.EDYCJA: Nie jestem pewien, kiedy ta funkcja została dodana, ale możesz również użyć
getNamespaceVersion
, jest to czystsze:źródło
`:::`(pkg, .__NAMESPACE__.)$spec[["version"]]
jest synonimemasNamespace()
metody uzyskania wersji pakietu.packageVersion()
pokazuje tylko najlepszy wynik,installed.packages()
ale jeśli masz wiele wersji tego samego pakietu i załadujesz konkretną, to nie da ci właściwej odpowiedzi.Możesz spróbować czegoś takiego:
package_version(R.version)
getRversion()
źródło
Rozwiązanie GUI:
Jeśli używasz RStudio, możesz sprawdzić wersję pakietu w
Packages
okienku.źródło
Użyj metody R,
packageDescription
aby uzyskać opis zainstalowanego pakietu, a dla wersji użyj$Version
jako:źródło
W oparciu o poprzednie odpowiedzi, oto prosty alternatywny sposób drukowania wersji R, po której następuje nazwa i wersja każdego pakietu załadowanego do przestrzeni nazw. Działa w notatniku Jupyter, gdzie miałem problemy z uruchomieniem
sessionInfo()
iR --version
.Na zewnątrz:
źródło
Stare pytanie, ale nie wśród odpowiedzi, jest moim ulubionym poleceniem, aby uzyskać szybki i krótki przegląd wszystkich załadowanych pakietów:
Aby zobaczyć, która wersja jest zainstalowana dla wszystkich załadowanych pakietów, po prostu użyj powyższego polecenia, aby dokonać podzbioru
installed.packages()
.Zmieniając numer kolumny (3 dla wersji pakietu), możesz uzyskać dowolne inne informacje przechowywane w
installed.packages()
czytelnej matrycy. Poniżej znajduje się przykład numeru wersji i zależności:źródło
Użyj następującego kodu, aby uzyskać wersję pakietów R zainstalowanych w systemie:
źródło
Po prostu użyj
help(package="my_package")
i spójrz na pokazaną wersję.Zakłada się, że nie ma innych wersji pakietu w tym samym
.libPaths
.źródło
Search () może dać bardziej uproszczoną listę dołączonych pakietów w sesji (tzn. Bez szczegółowych informacji podanych przez sessionInfo ())
szukaj {baza} - R
Opis dokumentacji : Podaje listę dołączonych pakietów. Szukaj()
źródło