我正在研究如何使用我的大学集群。它安装了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()

它在r2.11上没有任何问题。(我用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似乎加载了为r2.11编译的snow版本包。我已经在r2.14下将snow安装到我的主文件夹中,并在代码中添加了以下代码行:

.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中加载的是哪个版本的包?我可以看到安装。包所有的包,其中安装,所以也许有一些功能,列出类似的信息加载包?


当前回答

你可以使用utils::packageVersion来查看安装的包的版本:

> packageVersion("snow")
[1] ‘0.3.9’

请注意,

一个包将不会被“找到”,除非它有一个包含有效版本字段的描述文件。当没有找到包目录和有合适的目录但没有有效的DESCRIPTION文件时,会给出不同的警告。

虽然听起来像是你想知道你正在运行的R的哪个版本,但在这种情况下,@Justin的sessionInfo建议是可行的。

其他回答

你可以尝试这样做:

package_version (R.version) getRversion ()

从技术上讲,目前所有的答案都是错误的。packageVersion不返回加载包的版本。它进入磁盘,并从那里获取包的版本。

这在大多数情况下不会有什么不同,但有时会有。据我所知,获得已加载包版本的唯一方法是:

asNamespace(pkg)$`.__NAMESPACE__.`$spec[["version"]]

其中PKG为包名。

编辑:我不确定这个函数是什么时候添加的,但你也可以使用getNamespaceVersion,这是更干净的:

getNamespaceVersion(pkg)

GUI解决方案:

如果您正在使用RStudio,那么您可以在Packages窗格中检查包版本。

要检查R的版本,执行:R——version

或者在R shell中打印版本$version.string的内容

EDIT

要检查已安装包的版本,请执行以下操作。

加载库之后,可以执行sessionInfo ()

但是要知道所有已安装包的列表:

packinfo <- installed.packages(fields = c("Package", "Version"))
packinfo[,c("Package", "Version")]

或来提取特定的库版本,一旦您使用已安装的。如上所述的包函数只是在矩阵的第一维中使用包的名称。

packinfo["RANN",c("Package", "Version")]
packinfo["graphics",c("Package", "Version")]

上面将打印RANN库和图形库的版本。

Search()可以给出一个会话中附加包的更简化的列表(即,没有sessionInfo()给出的详细信息)

搜索{base}- R文档 描述:给出附加包的列表。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"