Jak sprawdzić, która wersja pakietu jest załadowana W R?

Jestem w trakcie zastanawiania się, jak korzystać z mojego klastra uniwersyteckiego. Posiada zainstalowane 2 wersje R. System wide R 2.11 (Debian 6.0) i R 2.14.2 w niestandardowej lokalizacji.

[5]}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ć z R 2.14.2, dostaję następujący komunikat:

Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:

Więc wygląda na to, że r ładuje pakiet wersja snow skompilowana dla R 2.11. Zainstalowałem snow pod R 2.14 w moim folderze domowym i dodałem następujące linie do kodu:

.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)

I wyjście przed błędem potwierdza, że rzeczywiście używam r 2.14.2 i mój folder r packages jest pierwszy w ścieżce wyszukiwania. Ale nadal Rozumiem błąd.

Więc moje pytanie brzmi jak określić, która wersja pakietu jest załadowana W R? Widzę z installed.packages wszystkie pakiety, które są zainstalowane, więc może jest jakaś funkcja, która wyświetla podobne informacje dla załadowanych pakietów?

Author: epo3, 2012-06-19

10 answers

Możesz użyć sessionInfo(), aby to osiągnąć.

> sessionInfo()
R version 2.15.0 (2012-03-30)
Platform: x86_64-pc-linux-gnu (64-bit)

locale:
 [1] LC_CTYPE=en_US.UTF-8       LC_NUMERIC=C               LC_TIME=en_US.UTF-8        LC_COLLATE=en_US.UTF-8    
 [5] LC_MONETARY=en_US.UTF-8    LC_MESSAGES=en_US.UTF-8    LC_PAPER=C                 LC_NAME=C                 
 [9] LC_ADDRESS=C               LC_TELEPHONE=C             LC_MEASUREMENT=en_US.UTF-8 LC_IDENTIFICATION=C       

attached base packages:
[1] graphics  grDevices utils     datasets  stats     grid      methods   base     

other attached packages:
[1] ggplot2_0.9.0  reshape2_1.2.1 plyr_1.7.1    

loaded via a namespace (and not attached):
 [1] colorspace_1.1-1   dichromat_1.2-4    digest_0.5.2       MASS_7.3-18        memoise_0.1        munsell_0.3       
 [7] proto_0.3-9.2      RColorBrewer_1.0-5 scales_0.2.0       stringr_0.6       
> 

Jednak, zgodnie z komentarzami i odpowiedzią poniżej, są lepsze opcje

> packageVersion("snow")

[1] ‘0.3.9’

Lub:

"Rmpi" %in% loadedNamespaces()
 379
Author: Justin,
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-01-27 11:35:58

Możesz użyć packageVersion, aby zobaczyć, która wersja pakietu jest załadowana

> packageVersion("snow")
[1] ‘0.3.9’

Chociaż wygląda na to, że chcesz zobaczyć, jaką wersję R używasz, w takim przypadku sugestia @ Justin jest drogą

 233
Author: GSee,
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
2012-06-19 14:36:34

Możesz spróbować czegoś takiego:

  1. package_version(R.version)

  2. getRversion()

 19
Author: Sathish,
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
2012-09-23 19:13:32

Aby sprawdzić wersję r wykonaj: R --version

Lub po znalezieniu się w powłoce r wydrukuj zawartość version$version.string

EDIT

Aby sprawdzić wersję zainstalowanych pakietów wykonaj następujące czynności.

Po załadowaniu biblioteki można wykonać sessionInfo ()

Ale aby poznać listę wszystkich zainstalowanych pakietów:

packinfo <- installed.packages(fields = c("Package", "Version"))
packinfo[,c("Package", "Version")]

Lub aby wyodrębnić określoną wersję biblioteki, po wyodrębnieniu informacji za pomocą funkcji installed.package Jak powyżej wystarczy użyć nazwy pakiet w pierwszym wymiarze matrycy.

packinfo["RANN",c("Package", "Version")]
packinfo["graphics",c("Package", "Version")]

Powyższe wyświetli wersje biblioteki RANN i biblioteki graficznej.

 18
Author: phoxis,
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-10-13 11:51:13

Rozwiązanie GUI:

Jeśli używasz RStudio, możesz sprawdzić wersję pakietu w okienku Packages.

Tutaj wpisz opis obrazka

 11
Author: epo3,
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-10-17 13:25:08

Technicznie rzecz biorąc, wszystkie odpowiedzi w tej chwili są błędne. packageVersion nie zwraca wersji załadowanego pakietu. Przechodzi na dysk i pobiera stamtąd wersję pakietu.

W większości przypadków nie będzie to miało znaczenia, ale czasami tak. Z tego co wiem, jedynym sposobem na załadowanie wersji pakietu jest raczej hackish:

asNamespace(pkg)$`.__NAMESPACE__.`$spec[["version"]]

Gdzie pkg jest nazwą pakietu.

EDIT: nie jestem pewien kiedy ta funkcja została dodana, ale możesz również użyć getNamespaceVersion, to jest czystsze:

getNamespaceVersion(pkg)
 11
Author: Gabor Csardi,
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-11-16 14:56:53

Użyj metody R packageDescription Aby uzyskać opis zainstalowanego pakietu, a dla wersji użyj $Version jako:

packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"
 5
Author: krishna Prasad,
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-05-14 05:04:44

Użyj następującego kodu, aby uzyskać wersję pakietów r zainstalowanych w systemie:

installed.packages(fields = c ("Package", "Version"))
 1
Author: Anjana,
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-09-24 10:12:39

Bazując na poprzednich odpowiedziach, Oto prosty alternatywny sposób drukowania wersji R, po której następuje nazwa i wersja każdego pakietu załadowanego w przestrzeni nazw. Działa w Notatniku Jupyter, gdzie miałem problemy z uruchomieniem sessionInfo() i R --version.

print(paste("R", getRversion()))
print("-------------")
for (package_name in sort(loadedNamespaces())) {
    print(paste(package_name, packageVersion(package_name)))
}

Out:

[1] "R 3.2.2"
[1] "-------------"
[1] "AnnotationDbi 1.32.2"
[1] "Biobase 2.30.0"
[1] "BiocGenerics 0.16.1"
[1] "BiocParallel 1.4.3"
[1] "DBI 0.3.1"
[1] "DESeq2 1.10.0"
[1] "Formula 1.2.1"
[1] "GenomeInfoDb 1.6.1"
[1] "GenomicRanges 1.22.3"
[1] "Hmisc 3.17.0"
[1] "IRanges 2.4.6"
[1] "IRdisplay 0.3"
[1] "IRkernel 0.5"
 1
Author: joelostblom,
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-24 16:49:23

Search () może dać bardziej uproszczoną listę dołączonych pakietów w sesji (np. bez szczegółowych informacji podanych przez sessionInfo ())

Search {base} - R Documentation
Opis: podaje listę dołączonych pakietów. Szukaj()

search()
#[1] ".GlobalEnv"        "package:Rfacebook" "package:httpuv"   
#"package:rjson"    
#[5] "package:httr"      "package:bindrcpp"  "package:forcats"   # 
#"package:stringr"  
#[9] "package:dplyr"     "package:purrr"     "package:readr"     
#"package:tidyr"    
#[13] "package:tibble"    "package:ggplot2"   "package:tidyverse" 
#"tools:rstudio"    
#[17] "package:stats"     "package:graphics"  "package:grDevices" 
#"package:utils"    
#[21] "package:datasets"  "package:methods"   "Autoloads"         
#"package:base"
 0
Author: Maria Wollestonecraft,
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
2018-01-13 17:15:32