web-dev-qa-db-ger.com

Wie kann man herausfinden, welche Paketversion in R geladen ist?

Ich bin gerade dabei herauszufinden, wie ich mein Universitätscluster nutzen kann. Es sind 2 Versionen von R installiert. Systemweites R 2.11 (Debian 6.0) und R 2.14.2 an einem nicht standardmäßigen Speicherort. 

Ich versuche, MPI zusammen mit Schnee zu verwenden. Der Code, den ich ausführen möchte, ist folgender

library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()

Es funktioniert ohne die Probleme auf R 2.11. (Ich starte das Skript mit mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R). Wenn ich jetzt versuche, es mit R 2.14.2 zu tun, erhalte ich die folgende Meldung:

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

Es scheint also, dass R die für R 2.11 kompilierte Paketschneeversion lädt. Ich habe Schnee unter R 2.14 in meinem Home-Ordner installiert und meinem Code folgende Zeilen hinzugefügt:

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

Und die Ausgabe vor dem Fehler bestätigt, dass ich tatsächlich R 2.14.2 ausführte und sich mein R-Paketordner zuerst im Suchpfad befindet. Aber ich bekomme immer noch den Fehler. 

Meine Frage ist also, wie ich feststellen kann, welche Paketversion in R geladen ist. Ich kann mit installed.packages alle installierten Pakete sehen. Vielleicht gibt es eine Funktion, die ähnliche Informationen für geladene Pakete auflistet.

317
mpiktas

Sie können sessionInfo() verwenden, um dies zu erreichen.

> 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       
> 

Wie in den Kommentaren und der Antwort unten beschrieben, gibt es jedoch bessere Optionen

> packageVersion("snow")

[1] „0.3.9“

Oder:

"Rmpi" %in% loadedNamespaces()
411
Justin

Sie können packageVersion verwenden, um zu sehen, welche Version eines Pakets geladen ist

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

Es klingt zwar so, als wollten Sie sehen, welche Version von R Sie ausführen. In diesem Fall ist der Vorschlag von @ Justin sessionInfo der richtige Weg

243
GSee

Sie können so etwas ausprobieren:

  1. package_version(R.version)

  2. getRversion()

19
Sathish

Um die Version von R zu überprüfen, führen Sie Folgendes aus: R --version

Oder nachdem Sie sich in der R-Shell befinden, drucken Sie den Inhalt von version$version.string 

EDIT

Gehen Sie folgendermaßen vor, um die Version der installierten Pakete zu überprüfen.

Nach dem Laden der Bibliothek können Sie sessionInfo () ausführen.

Um jedoch die Liste aller installierten Pakete zu kennen:

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

ODER zum Extrahieren einer bestimmten Bibliotheksversion. Wenn Sie die Informationen mit der installed.package-Funktion wie oben extrahiert haben, verwenden Sie einfach den Namen des Pakets in der ersten Dimension der Matrix.

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

Daraufhin werden die Versionen der RANN-Bibliothek und der Grafikbibliothek gedruckt.

19
phoxis

Technisch gesehen sind alle Antworten zu diesem Zeitpunkt falsch. packageVersion gibt die Version des geladenen Pakets nicht zurück. Es geht auf die Festplatte und holt die Paketversion von dort.

Dies macht in den meisten Fällen keinen Unterschied, manchmal aber auch. Soweit ich das beurteilen kann, ist der einzige Weg, die Version eines loaded -Pakets zu bekommen, das ziemlich hackish:

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

dabei ist pkg der Paketname.

BEARBEITEN: Ich bin nicht sicher, wann diese Funktion hinzugefügt wurde, aber Sie können auch getNamespaceVersion verwenden. Dies ist sauberer:

getNamespaceVersion(pkg)
15
Gabor Csardi

GUI-Lösung:

Wenn Sie RStudio verwenden, können Sie die Paketversion im Bereich Packages überprüfen.

 enter image description here

11
epo3

Verwenden Sie die R-Methode packageDescription, um die Beschreibung des installierten Pakets abzurufen. Für Version verwenden Sie $Version wie folgt: 

packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"
5
krishna Prasad

Basierend auf den vorherigen Antworten gibt es hier eine einfache Alternative zum Drucken der R-Version, gefolgt von Name und Version jedes Pakets, das in den Namespace geladen wird. Es funktioniert im Jupyter-Notebook, wo ich Probleme hatte, sessionInfo() und R --version auszuführen.

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

Aus:

[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
joelostblom

Verwenden Sie den folgenden Code, um die Version der im System installierten R-Pakete abzurufen:

installed.packages(fields = c ("Package", "Version"))
1
Anjana

Verwenden Sie einfach help(package="my_package") und schauen Sie sich die abgebildete Version an.

Dies setzt voraus, dass sich keine anderen Paketversionen im selben .libPaths befinden.

0
NelsonGon

Search () kann eine vereinfachte Liste der angefügten Pakete in einer Sitzung angeben (d. H. Ohne die detaillierten Informationen, die von sessionInfo () angegeben wurden).

suche {Basis} - R Dokumentation
Beschreibung: Gibt eine Liste der angefügten Pakete an. Suche()

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"