web-dev-qa-db-fra.com

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

Je suis en train de comprendre comment utiliser mon cluster universitaire. Il a 2 versions de R installé. Système R 2.11 (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'essaye de lancer est le suivant

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

Cela fonctionne sans les problèmes de 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, j'obtiens 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 de paquet 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 le résultat avant l'erreur confirme que je suis bien en train d'exécuter R 2.14.2 et que mon dossier de packages R est le premier dans le chemin de recherche. Mais j'ai toujours l'erreur. 

Ma question est donc comment puis-je 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’une fonction énumère des informations similaires pour les paquets chargés?

317
mpiktas

Vous pouvez utiliser sessionInfo() pour accomplir cela.

> 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()
411
Justin

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

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

Bien que cela semble vouloir dire quelle version de R vous utilisez, dans ce cas, la suggestion de la variable sessionInfo de Justin est la meilleure solution

243
GSee

Vous pouvez essayer quelque chose comme ça:

  1. package_version(R.version)

  2. getRversion()

19
Sathish

Pour vérifier la version de R, exécutez: R --version

Ou, une fois dans le shell R, imprimez le contenu de version$version.string 

MODIFIER

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:

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 à l'aide de la fonction installed.package comme ci-dessus, utilisez simplement le nom du package 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.

19
phoxis

Techniquement parlant, toutes les réponses à ce stade sont fausses. packageVersion ne renvoie pas la version du package chargé. Il va sur le disque et va chercher la version du paquet à partir de là.

Cela ne fera pas une différence dans la plupart des cas, mais parfois, cela fait. Autant que je sache, le seul moyen d’obtenir la version d’un paquet chargé est le plutôt bidon:

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

pkg est le nom du paquet.

EDIT: Je ne sais pas quand cette fonction a été ajoutée, mais vous pouvez aussi utiliser getNamespaceVersion, c'est plus propre:

getNamespaceVersion(pkg)
15
Gabor Csardi

Solution graphique:

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

 enter image description here

11
epo3

Utilisez la méthode R packageDescription pour obtenir la description du paquet installé. Pour la version, utilisez simplement $Version en tant que: 

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

Sur la base des réponses précédentes, voici une autre solution simple d’impression de 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 avec sessionInfo() et R --version.

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

En dehors:

[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

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

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

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.

0
NelsonGon

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

search {base} - Documentation R
Description: Donne une liste des paquets attachés. Chercher()

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