Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to find out which package version is loaded in R?

Tags:

package

version

r

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?

like image 840
mpiktas Avatar asked Jun 19 '12 14:06

mpiktas


People also ask

What packages do I have installed in R?

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.

How do I know where R packages are installed?

R packages are installed in a directory called library. The R function . libPaths() can be used to get the path to the library.

How do you check which R version RStudio is using?

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.


2 Answers

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() 
like image 185
Justin Avatar answered Sep 30 '22 08:09

Justin


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 valid Version field. Different warnings are given when no package directory is found and when there is a suitable directory but no valid DESCRIPTION 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.

like image 28
GSee Avatar answered Sep 30 '22 09:09

GSee