¿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?
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()
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
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:
package_version(R.version)
getRversion()
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.
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
.
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)
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"
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"))
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"
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"
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