Estoy en un proceso de averiguar cómo usar mi clúster universitario. Tiene 2 versiones de R instaladas. 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 nieve. El código que intento 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. (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, aparece el siguiente mensaje:
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
Entonces parece que R carga la versión de paquete de nieve compilada para R 2.11. Instalé snow bajo 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 realmente estoy ejecutando R 2.14.2 y mi carpeta de paquetes R está primero en la ruta de búsqueda. Pero aún recibo el error.
Entonces, mi pregunta es ¿cómo determino qué versión del paquete se carga en R? Puedo ver con installed.packages
todos los paquetes que están instalados, ¿quizás hay alguna función que enumera información similar para los paquetes cargados?
Respuestas:
Puedes usar
sessionInfo()
para lograr eso.Sin embargo, según los comentarios y la respuesta a continuación, hay mejores opciones
[1] '0.3.9'
O:
fuente
packageVersion()
es mucho mejor en la mayoría de los casossessionInfo
. Consulte la Nota de? SessionInfo: "La información sobre los paquetes y espacios de nombres 'cargados' es la versión actual instalada en la ubicación desde la que se cargó el paquete: puede ser incorrecto si otro proceso ha estado cambiando paquetes durante la sesión". Entonces: si desea saber si el paquete está cargado o no, mejor use"Rmpi" %in% loadedNamespaces()
; si desea saber qué versión está instalada en una ubicación específica, mejor usopackageVersion(lib.loc = ...)
Puede usar
packageVersion
para ver qué versión de un paquete se cargaAunque parece que quiere ver qué versión de R está ejecutando, en cuyo caso la
sessionInfo
sugerencia de @ Justin es el camino a seguirfuente
Para verificar la versión de R ejecute:
R --version
O después de que esté en el shell R imprima el contenido de
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 conocer la lista de todos los paquetes instalados:
O bien, para extraer una versión de biblioteca específica, una vez que haya extraído la información utilizando la
installed.package
función anterior, simplemente use el nombre del paquete en la primera dimensión de la matriz.Lo anterior imprimirá las versiones de la biblioteca RANN y la biblioteca de gráficos.
fuente
version
.packinfo[, "Version", drop=F]
da un resultado aún más bonito (el nombre del paquete no está duplicado).Técnicamente hablando, todas las respuestas en este momento son incorrectas.
packageVersion
no devuelve la versión del paquete cargado. Va al disco y busca 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 forma de obtener la versión de un paquete cargado es bastante hack:
¿Dónde
pkg
está el nombre del paquete?EDITAR: no estoy seguro de cuándo se agregó esta función, pero también puede usar
getNamespaceVersion
, esto es más limpio:fuente
`:::`(pkg, .__NAMESPACE__.)$spec[["version"]]
es un sinónimo delasNamespace()
método para obtener la versión del paquete.packageVersion()
solo le muestra el resultado superior,installed.packages()
pero si tiene varias versiones del mismo paquete y carga una específicamente, no le dará la respuesta correcta.Puedes probar algo como esto:
package_version(R.version)
getRversion()
fuente
Solución GUI:
Si está utilizando RStudio, puede verificar la versión del paquete en el
Packages
panel.fuente
Use el método R
packageDescription
para obtener la descripción del paquete instalado y para la versión solo use$Version
como:fuente
Según 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 para ejecutar
sessionInfo()
yR --version
.Fuera:
fuente
La pregunta anterior, pero no está entre las respuestas, es mi comando favorito para obtener una descripción rápida y breve de todos los paquetes cargados:
Para ver qué versión está instalada de todos los paquetes cargados, solo use el comando anterior para subconjuntos
installed.packages()
.Al cambiar el número de columna (3 para la versión del paquete) puede obtener cualquier otra información almacenada
installed.packages()
en una matriz fácil de leer. A continuación se muestra un ejemplo de número de versión y dependencia:fuente
Use el siguiente código para obtener la versión de los paquetes R instalados en el sistema:
fuente
Simplemente use
help(package="my_package")
y mire la versión que se muestra.Esto supone que no hay otras versiones de paquete en el mismo
.libPaths
.fuente
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 ())
search {base} - R
Descripción de la documentación : proporciona una lista de paquetes adjuntos. Buscar()
fuente