Je suis en train de comprendre comment utiliser mon cluster universitaire. Il a 2 versions de R installées. R 2.11 (Debian 6.0) et R 2.14.2 à l'échelle du système dans un emplacement non standard.
J'essaie d'utiliser MPI avec de la neige. Le code que j'essaie d'exécuter est le suivant
library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()
Cela fonctionne sans les problèmes sur R 2.11. (Je lance le script avec mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R
). Maintenant, quand j'essaie de le faire avec R 2.14.2, je reçois le message suivant:
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
Il semble donc que R charge la version snow du package compilée pour R 2.11. J'ai installé snow sous R 2.14 dans mon dossier personnel et j'ai ajouté les lignes suivantes à mon code:
.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)
Et la sortie avant l'erreur confirme que j'exécute bien R 2.14.2 et mon dossier de packages R est d'abord dans le chemin de recherche. Mais je reçois toujours l'erreur.
Ma question est donc de savoir comment déterminer la version du package chargée dans R? Je peux voir avec installed.packages
tous les packages installés, alors peut-être qu'il y a une fonction qui répertorie des informations similaires pour les packages chargés?
Réponses:
Vous pouvez utiliser
sessionInfo()
pour accomplir cela.Cependant, selon les commentaires et la réponse ci-dessous, il existe de meilleures options
[1] «0,3,9»
Ou:
la source
packageVersion()
est beaucoup mieux dans la plupart des cassessionInfo
. Voir la note de? SessionInfo: "Les informations sur les packages et les espaces de noms 'chargés' sont la version actuelle installée à l'emplacement à partir duquel le package a été chargé: cela peut être faux si un autre processus a changé les packages pendant la session." Donc: si vous voulez savoir si le paquet est chargé ou non, mieux vaut l'utiliser"Rmpi" %in% loadedNamespaces()
; si vous voulez savoir quelle version est installée dans un emplacement spécifique, mieux vaut l'utiliserpackageVersion(lib.loc = ...)
Vous pouvez utiliser
packageVersion
pour voir quelle version d'un package est chargéeBien qu'il semble que vous souhaitiez voir la version de R que vous utilisez, auquel cas la
sessionInfo
suggestion de @ Justin est la voie à suivrela source
Pour vérifier la version de R, exécutez:
R --version
Ou une fois que vous êtes dans le shell R, imprimez le contenu de
version$version.string
ÉDITER
Pour vérifier la version des packages installés, procédez comme suit.
Après avoir chargé la bibliothèque, vous pouvez exécuter
sessionInfo ()
Mais pour connaître la liste de tous les packages installés:
OU pour extraire une version de bibliothèque spécifique, une fois que vous avez extrait les informations à l'aide de la
installed.package
fonction ci-dessus, utilisez simplement le nom du package dans la première dimension de la matrice.Ce qui précède imprimera les versions de la bibliothèque RANN et de la bibliothèque graphique.
la source
version
.packinfo[, "Version", drop=F]
donne un résultat encore plus joli (le nom du package n'est pas dupliqué).Techniquement parlant, toutes les réponses en ce moment sont fausses.
packageVersion
ne renvoie pas la version du package chargé. Il va sur le disque et récupère la version du package à partir de là.Cela ne fera pas de différence dans la plupart des cas, mais parfois c'est le cas. Pour autant que je sache, le seul moyen d'obtenir la version d'un paquet chargé est le plutôt hackish:
où
pkg
est le nom du package.EDIT: Je ne sais pas quand cette fonction a été ajoutée, mais vous pouvez également l'utiliser
getNamespaceVersion
, c'est plus propre:la source
`:::`(pkg, .__NAMESPACE__.)$spec[["version"]]
est un synonyme de laasNamespace()
méthode d'obtention de la version du package.packageVersion()
ne vous montre que le meilleur résultat,installed.packages()
mais si vous avez plusieurs versions du même package et que vous en chargez une spécifiquement, cela ne vous donnera pas la bonne réponse.Vous pouvez essayer quelque chose comme ceci:
package_version(R.version)
getRversion()
la source
Solution GUI:
Si vous utilisez RStudio, vous pouvez vérifier la version du package dans le
Packages
volet.la source
Utilisez la méthode R
packageDescription
pour obtenir la description du package installé et pour la version, utilisez simplement$Version
:la source
Sur la base des réponses précédentes, voici une manière alternative simple d'imprimer la version R, suivie du nom et de la version de chaque paquet chargé dans l'espace de noms. Cela fonctionne dans le cahier Jupyter, où j'ai eu des problèmes de fonctionnement
sessionInfo()
etR --version
.En dehors:
la source
Ancienne question, mais pas parmi les réponses est ma commande préférée pour obtenir un aperçu rapide et bref de tous les packages chargés:
Pour voir quelle version est installée de tous les packages chargés, utilisez simplement la commande ci-dessus pour sous-ensemble
installed.packages()
.En modifiant le numéro de colonne (3 pour la version du package), vous pouvez obtenir toute autre information stockée
installed.packages()
dans une matrice facile à lire. Voici un exemple de numéro de version et de dépendance:la source
Utilisez le code suivant pour obtenir la version des packages R installés sur le système:
la source
Utilisez simplement
help(package="my_package")
et regardez la version indiquée.Cela suppose qu'il n'y a pas d'autres versions de package dans le même
.libPaths
.la source
Search () peut donner une liste plus simplifiée des packages joints dans une session (c'est-à-dire sans les informations détaillées fournies par sessionInfo ())
search {base} - R Documentation
Description: Donne une liste des packages joints. Chercher()
la source