Ich bin gerade dabei herauszufinden, wie ich meinen Universitätscluster nutzen soll. Es sind 2 Versionen von R installiert. Systemweit R 2.11 (Debian 6.0) und R 2.14.2 an nicht standardmäßigen Standorten.
Ich versuche, MPI zusammen mit Schnee zu verwenden. Der Code, den ich ausführen möchte, ist der folgende
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 Paket-Schneeversion lädt. Ich habe Schnee unter R 2.14 in meinem Home-Ordner installiert und meinem Code die folgenden 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)
Die Ausgabe vor dem Fehler bestätigt, dass ich tatsächlich R 2.14.2 ausführe und mein R-Paketordner sich zuerst im Suchpfad befindet. Aber ich bekomme immer noch den Fehler.
Meine Frage ist also, wie ich feststelle, welche Version des Pakets in R geladen ist. Ich kann mit installed.packages
allen installierten Paketen sehen, also gibt es vielleicht eine Funktion, die ähnliche Informationen für geladene Pakete auflistet?
Antworten:
Sie können verwenden,
sessionInfo()
um dies zu erreichen.Gemäß den Kommentaren und der Antwort unten gibt es jedoch bessere Optionen
[1] "0.3.9"
Oder:
quelle
packageVersion()
ist in den meisten Fällen viel bessersessionInfo
. Siehe den Hinweis von? SessionInfo: "Die Informationen zu 'geladenen' Paketen und Namespaces sind die aktuelle Version, die an dem Speicherort installiert wurde, von dem das Paket geladen wurde: Es kann falsch sein, wenn ein anderer Prozess während der Sitzung Pakete geändert hat." Also: Wenn Sie wissen möchten, ob das Paket geladen ist oder nicht, verwenden Sie es besser"Rmpi" %in% loadedNamespaces()
. Wenn Sie wissen möchten, welche Version an einem bestimmten Ort installiert ist, verwenden Sie besserpackageVersion(lib.loc = ...)
Sie können verwenden, um
packageVersion
zu sehen, welche Version eines Pakets geladen istObwohl es so klingt, als ob Sie sehen möchten, welche Version von R Sie ausführen, ist in diesem Fall der
sessionInfo
Vorschlag von @ Justin der richtige Wegquelle
So überprüfen Sie die Version von R:
R --version
Oder drucken Sie den Inhalt von, nachdem Sie sich in der R-Shell befinden
version$version.string
BEARBEITEN
Gehen Sie wie folgt vor, um die Version der installierten Pakete zu überprüfen.
Nach dem Laden der Bibliothek können Sie ausführen
sessionInfo ()
Aber um die Liste aller installierten Pakete zu kennen:
ODER Um eine bestimmte Bibliotheksversion zu extrahieren, verwenden Sie nach dem Extrahieren der Informationen mit der oben beschriebenen
installed.package
Funktion einfach den Namen des Pakets in der ersten Dimension der Matrix.Oben werden die Versionen der RANN-Bibliothek und der Grafikbibliothek gedruckt.
quelle
version
.packinfo[, "Version", drop=F]
gibt noch schönere Ergebnisse (Paketname wird nicht dupliziert).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 ruft von dort die Paketversion ab.Dies macht in den meisten Fällen keinen Unterschied, aber manchmal schon. Soweit ich das beurteilen kann, ist der einzige Weg, um die Version eines geladenen Pakets zu erhalten, der ziemlich hackige:
Wo
pkg
ist der Paketname?EDIT: Ich bin nicht sicher, wann diese Funktion hinzugefügt wurde, aber Sie können auch verwenden
getNamespaceVersion
, dies ist sauberer:quelle
`:::`(pkg, .__NAMESPACE__.)$spec[["version"]]
ist ein Synonym für dieasNamespace()
Methode zum Abrufen der Paketversion.packageVersion()
zeigt Ihnen nur das beste Ergebnis in,installed.packages()
aber wenn Sie mehrere Versionen desselben Pakets haben und eine speziell laden, erhalten Sie nicht die richtige Antwort.Sie können so etwas ausprobieren:
package_version(R.version)
getRversion()
quelle
GUI-Lösung:
Wenn Sie RStudio verwenden, können Sie die Paketversion im Bereich überprüfen
Packages
.quelle
Verwenden Sie die R-Methode
packageDescription
, um die installierte Paketbeschreibung abzurufen, und verwenden Sie für die Version einfach Folgendes$Version
:quelle
Basierend auf den vorherigen Antworten finden Sie hier eine einfache alternative Möglichkeit, die R-Version zu drucken, gefolgt vom Namen und der Version jedes im Namespace geladenen Pakets. Es funktioniert im Jupyter-Notizbuch, wo ich Probleme beim Laufen hatte
sessionInfo()
undR --version
.Aus:
quelle
Alte Frage, aber nicht unter den Antworten, ist mein Lieblingsbefehl, um einen schnellen und kurzen Überblick über alle geladenen Pakete zu erhalten:
Um zu sehen, welche Version aller geladenen Pakete installiert ist, verwenden Sie einfach den obigen Befehl, um eine Teilmenge zu erstellen
installed.packages()
.Durch Ändern der Spaltennummer (3 für Paketversion) können Sie alle anderen Informationen
installed.packages()
in einer einfach zu lesenden Matrix speichern . Unten finden Sie ein Beispiel für Versionsnummer und Abhängigkeit:quelle
Verwenden Sie den folgenden Code, um die Version der im System installierten R-Pakete abzurufen:
quelle
Verwenden Sie einfach
help(package="my_package")
die gezeigte Version und sehen Sie sie sich an.Dies setzt voraus, dass es keine anderen Paketversionen in derselben gibt
.libPaths
.quelle
Search () kann eine vereinfachte Liste der angehängten Pakete in einer Sitzung enthalten (dh ohne die detaillierten Informationen von sessionInfo ()).
search {base} - R Dokumentation
Beschreibung: Gibt eine Liste der angehängten Pakete an. Suche()
quelle