如何找出在R中加载哪个软件包版本?
我正在研究如何使用我的大学集群。 它有2个版本的R安装。 系统范围R 2.11(Debian 6.0)和R 2.14.2非标准位置。
我正在尝试将MPI与雪一起使用。 我试图运行的代码如下
library(snow)
library(Rmpi)
cl <- makeMPIcluster(mpi.universe.size()-1)
stopCluster(cl)
mpi.quit()
  它在R 2.11中没有问题。  (我用mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R启动脚本mpirun -H localhost,n1,n2,n3,n4 -n 1 R --slave -f code.R )。  现在,当我尝试使用R 2.14.2进行操作时,我收到以下消息: 
Error: This is R 2.11.1, package 'snow' needs >= 2.12.1
In addition: Warning message:
所以看起来R加载了为R 2.11编译的package snow版本。 我已将R 2.14下的雪安装到我的主文件夹中,并将以下行添加到我的代码中:
.libPaths("/soft/R/lib/R/library")
.libPaths("~/R/x86_64-pc-linux-gnu-library/2.11")
print(.libPaths())
print(sessionInfo())
print(version)
错误之前的输出证实我确实运行R 2.14.2,并且我的R packages文件夹首先在搜索路径中。 但我仍然得到错误。
  所以我的问题是如何确定在R中加载哪个版本的软件包?  我可以在installed.packages中看到所有installed.packages的软件包,所以也许有一些函数列出了加载软件包的类似信息? 
  你可以使用sessionInfo()来完成。 
> 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       
> 
但是,根据下面的评论和答案,有更好的选择
> packageVersion("snow")
[1]'0.3.9'
要么:
"Rmpi" %in% loadedNamespaces()
  您可以使用packageVersion来查看加载的软件包版本 
> packageVersion("snow")
[1] ‘0.3.9’
  虽然这听起来像你想看看你正在运行什么版本的R,在这种情况下@贾斯汀的sessionInfo建议是要走的路 
你可以尝试这样的事情:
 package_version(R.version) 
 getRversion() 
