I am in a process of figuring out how to use my university cluster. It has 2 versions of R installed. System wide R 2.11 (Debian 6.0) and R 2.14.2 in non-standard location.
I am trying to use MPI together with snow. The code I am trying to run is the following
library(snow) library(Rmpi) cl <- makeMPIcluster(mpi.universe.size()-1) stopCluster(cl) mpi.quit()
It works without the problems on R 2.11. (I launch the script with mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R
). Now when I try to do it with R 2.14.2, I get the following message:
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1 In addition: Warning message:
So it seems that R loads the package snow version compiled for R 2.11. I've installed snow under R 2.14 into my home folder and I added the following lines to my code:
.libPaths("/soft/R/lib/R/library") .libPaths("~/R/x86_64-pc-linux-gnu-library/2.11") print(.libPaths()) print(sessionInfo()) print(version)
And the output before the error confirms that I am indeed running R 2.14.2 and my R packages folder is first in search path. But I still get the error.
So my question is how do I determine which version of package is loaded in R? I can see with installed.packages
all the packages which are installed, so maybe there is some function which lists similar information for loaded packages?
To see what packages are installed, use the installed. packages() command. This will return a matrix with a row for each package that has been installed.
R packages are installed in a directory called library. The R function . libPaths() can be used to get the path to the library.
The About RStudio dialog will tell you what version of RStudio is installed on your computer. To open the About RStudio dialog in Windows, click the About RStudio menu option in the Help menu. To open the About RStudio dialog in Mac, click the About RStudio menu option in the RStudio menu.
You can use sessionInfo()
to accomplish that.
> 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 >
However, as per comments and the answer below, there are better options
> packageVersion("snow")
[1] ‘0.3.9’
Or:
"Rmpi" %in% loadedNamespaces()
You can use utils::packageVersion
to see what version of a package is installed:
> packageVersion("snow") [1] ‘0.3.9’
Note that
A package will not be ‘found’ unless it has a
DESCRIPTION
file which contains a validVersion
field. Different warnings are given when no package directory is found and when there is a suitable directory but no validDESCRIPTION
file.
Although it sounds like you want to see what version of R you are running, in which case @Justin's sessionInfo
suggestion is the way to go.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With