mtext - ¿Cómo saber qué versión del paquete se carga en R?
text in r (10)
Estoy en un proceso de averiguar cómo usar mi grupo universitario. Tiene 2 versiones de R instaladas. Todo el sistema R 2.11 (Debian 6.0) y R 2.14.2 en una ubicación no estándar.
Estoy tratando de usar MPI junto con la nieve. 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 problemas en R 2.11. ( mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R
el script con mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R
). Ahora cuando intento 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 la versión compilada de nieve para el paquete R 2.11. He instalado snow under R 2.14 en mi carpeta de inicio y agregué 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 estoy ejecutando R 2.14.2 y que mi carpeta de paquetes R es la primera en la ruta de búsqueda. Pero todavía me sale el error.
Entonces, mi pregunta es ¿cómo puedo determinar qué versión del paquete se carga en R? Puedo ver con los paquetes installed.packages
todos los paquetes que están instalados, entonces ¿tal vez hay alguna función que muestre información similar para los paquetes cargados?
Basándose 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 cuaderno Jupyter, donde tuve problemas al ejecutar sessionInfo()
y R --version
.
print(paste("R", getRversion()))
print("-------------")
for (package_name in sort(loadedNamespaces())) {
print(paste(package_name, packageVersion(package_name)))
}
Afuera:
[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"
Para comprobar la versión de R ejecute: R --version
O una vez que esté en el shell R, imprima el contenido de la version$version.string
EDITAR
Para verificar la versión de los paquetes instalados, haga lo siguiente.
Después de cargar la biblioteca, puede ejecutar sessionInfo ()
Pero para saber 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 se indica anteriormente, simplemente use el nombre del 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.
Puede usar packageVersion
para ver qué versión de un paquete se carga
> packageVersion("snow")
[1] ‘0.3.9’
Aunque parezca que quiere ver qué versión de R está ejecutando, en cuyo caso, la sugerencia de la sessionInfo
de Justin sessionInfo
es el camino a seguir.
Puedes probar algo como esto:
package_version(R.version)
getRversion()
Puedes usar sessionInfo()
para lograr eso.
> 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()
Search () puede proporcionar una lista más simplificada de los paquetes adjuntos en una sesión (es decir, sin la información detallada proporcionada por sessionInfo ())
buscar {base} - R Documentación
Descripción: Da una lista de paquetes adjuntos. Search()
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"
Técnicamente hablando, todas las respuestas en este momento son incorrectas. packageVersion
no devuelve la versión del paquete cargado. Va al disco y recupera 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 más bien 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 puede usar getNamespaceVersion
, esto está más limpio:
getNamespaceVersion(pkg)
Use el método R Descripción del paquete para obtener la descripción del paquete instalado y para la versión solo use $Version
como:
packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"
Utilice el siguiente código para obtener la versión de los paquetes R instalados en el sistema:
installed.packages(fields = c ("Package", "Version"))