¿Cómo saber qué versión de paquete se carga en R?


Estoy en un proceso de averiguar cómo usar mi clúster universitario. Tiene 2 versiones de R instaladas. R 2.11 de todo el sistema (Debian 6.0) y R 2.14.2 en una ubicación no estándar.

Estoy tratando de usar MPI junto con snow. El código que estoy tratando de ejecutar es el siguiente

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

Funciona sin los problemas de R 2.11. (Lanzo el script con mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R). Ahora, cuando trato de hacerlo con R 2.14.2, recibo el siguiente mensaje:

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

Así que parece que R carga el paquete versión snow compilada para R 2.11. He instalado snow bajo R 2.14 en mi carpeta de inicio y he añadido las siguientes líneas a mi código:

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

Y la salida antes del error confirma que efectivamente estoy ejecutando R 2.14.2 y mi carpeta R packages es la primera en la ruta de búsqueda. Pero todavía tengo el error.

Así que mi pregunta es ¿cómo puedo determinar qué versión del paquete se carga en R? Puedo ver con installed.packages todos los paquetes que están instalados, así que tal vez hay alguna función que enumera ¿información similar para paquetes cargados?

Author: epo3, 2012-06-19

10 answers

Puedes usar sessionInfo() para lograrlo.

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

Sin embargo, según los comentarios y la respuesta a continuación, hay mejores opciones

> packageVersion("snow")

[1] ‘0.3.9’

O:

"Rmpi" %in% loadedNamespaces()
 379
Author: Justin,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-01-27 11:35:58

Puede usar packageVersion para ver qué versión de un paquete está cargado

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

Aunque parece que quieres ver qué versión de R estás ejecutando, en cuyo caso la sugerencia de @Justin sessionInfo es el camino a seguir

 233
Author: GSee,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-06-19 14:36:34

Puedes probar algo como esto:

  1. package_version(R.version)

  2. getRversion()

 19
Author: Sathish,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2012-09-23 19:13:32

Para comprobar la versión de R ejecutar: R --version

O después de estar en el shell de R imprimir el contenido de version$version.string

EDITAR

Para comprobar la versión de los paquetes instalados haga lo siguiente.

Después de cargar la biblioteca, puede ejecutar sessionInfo ()

Pero para conocer la lista de todos los paquetes instalados:

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

O para extraer una versión específica de la biblioteca, una vez que haya extraído la información utilizando la función installed.package como anteriormente, solo use el nombre de la paquete en la primera dimensión de la matriz.

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

Lo anterior imprimirá las versiones de la biblioteca RANN y la biblioteca de gráficos.

 18
Author: phoxis,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-10-13 11:51:13

Solución GUI:

Si está utilizando RStudio, puede comprobar la versión del paquete en el panel Packages.

introduzca la descripción de la imagen aquí

 11
Author: epo3,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-10-17 13:25:08

Técnicamente hablando, todas las respuestas en este momento son erróneas. packageVersion no devuelve la versión del paquete cargado. Va al disco, y obtiene la versión del paquete desde allí.

Esto no hará una diferencia en la mayoría de los casos, pero a veces lo hace. Por lo que puedo decir, la única manera de obtener la versión de un paquete cargado es el bastante hackish:

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

Donde pkg es el nombre del paquete.

EDITAR: No estoy seguro de cuándo se agregó esta función, pero también puedes usar getNamespaceVersion, esto es más limpio:

getNamespaceVersion(pkg)
 11
Author: Gabor Csardi,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-11-16 14:56:53

Use el método R packageDescription para obtener la descripción del paquete instalado y para la versión solo use $Version como:

packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"
 5
Author: krishna Prasad,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-05-14 05:04:44

Utilice el siguiente código para obtener la versión de los paquetes R instalados en el sistema:

installed.packages(fields = c ("Package", "Version"))
 1
Author: Anjana,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2015-09-24 10:12:39

Basado en las respuestas anteriores, aquí hay una forma alternativa simple de imprimir la versión R, seguida del nombre y la versión de cada paquete cargado en el espacio de nombres. Funciona en el Jupyter notebook, donde tuve problemas corriendo sessionInfo() y R --version.

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

Fuera:

[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
Author: joelostblom,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-24 16:49:23

Search() puede dar una lista más simplificada de los paquetes adjuntos en una sesión (es decir, sin la información detallada dada por sessionInfo ())

Buscar {base} - R Documentación
Descripción: Da una lista de paquetes adjuntos. Buscar()

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
Author: Maria Wollestonecraft,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2018-01-13 17:15:32