Comment savoir quelle version de paquet est chargée dans R?

Je suis en train de trouver comment utiliser mon cluster universitaire. Il a 2 versions de R installé. R 2.11 à l'échelle du système (Debian 6.0) et r 2.14.2 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 le paquet version de neige 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 que mon dossier R packages est le premier dans le chemin de recherche. Mais j'ai toujours l'erreur.

Ma question est donc de savoir comment déterminer quelle version du paquet est chargée dans R? Je peux voir avec installed.packages tous les paquets qui sont installés, alors peut-être qu'il y a une fonction qui répertorie informations similaires pour les paquets chargés?

296
demandé sur epo3 2012-06-19 18:30:29

10 réponses

Vous pouvez utiliser sessionInfo() pour accomplir cette.

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

Cependant, selon les commentaires et la réponse ci-dessous, il existe de meilleures options

> packageVersion("snow")

[1] ‘0.3.9’

Ou:

"Rmpi" %in% loadedNamespaces()
379
répondu Justin 2016-01-27 11:35:58

Vous pouvez utiliser packageVersion pour voir quelle version d'un package est chargé

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

Bien qu'il semble que vous vouliez voir quelle version de R vous utilisez, auquel cas la suggestion de @ Justin sessionInfo est la voie à suivre

233
répondu GSee 2012-06-19 14:36:34

Vous pouvez essayer quelque chose comme ceci:

  1. package_version(R.version)

  2. getRversion()

19
répondu Sathish 2012-09-23 19:13:32

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

Modifier

Pour vérifier la version des paquets 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 paquets installés:

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

Ou pour extraire une version de bibliothèque spécifique, une fois que vous avez extrait les informations en utilisant la fonction installed.package comme ci-dessus, utilisez simplement le nom de la lot dans la première dimension de la matrice.

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

Ce qui précède imprimera les versions de la bibliothèque RANN et de la bibliothèque graphique.

18
répondu phoxis 2015-10-13 11:51:13

Solution GRAPHIQUE:

Si vous utilisez RStudio, vous pouvez vérifier la version du package dans le volet Packages.

entrez la description de l'image ici

11
répondu epo3 2016-10-17 13:25:08

Techniquement parlant, toutes les réponses en ce moment sont fausses. packageVersion ne renvoie pas la version du paquet chargé. Il va sur le disque et récupère la version du paquet à 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, la seule façon d'obtenir la version d'un paquet loaded est plutôt hackish:

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

pkg est le nom du paquet.

EDIT: Je ne suis pas sûr quand cette fonction a été ajoutée, mais vous pouvez également utiliser getNamespaceVersion, c'est plus propre:

getNamespaceVersion(pkg)
11
répondu Gabor Csardi 2016-11-16 14:56:53

Utilisez la méthode R packageDescription pour obtenir la description du package installé et pour la version, utilisez simplement $Version comme:

packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"
5
répondu krishna Prasad 2016-05-14 05:04:44

Utilisez le code suivant pour obtenir la version des paquets R installés dans le système:

installed.packages(fields = c ("Package", "Version"))
1
répondu Anjana 2015-09-24 10:12:39

Sur la base des réponses précédentes, voici une alternative simple pour imprimer la version R, suivie du nom et de la version de chaque paquet chargé dans l'espace de noms. Cela fonctionne dans le bloc-notes Jupyter, où j'ai eu des problèmes en cours d'exécution sessionInfo() et 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
répondu joelostblom 2016-02-24 16:49:23

Search () peut donner une liste plus simplifiée des paquets attachés dans une session (c'est-à-dire sans les informations détaillées données par sessionInfo ())

Recherche {base}- R Documentation
Description: donne une liste des paquets joints. rechercher()

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
répondu Maria Wollestonecraft 2018-01-13 17:15:32