我正在弄清楚如何使用我的大学集群 . 它安装了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
启动脚本) . 现在,当我尝试使用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编译的包雪版本 . 我已将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
所有已安装的软件包,所以可能有一些函数列出了加载软件包的类似信息?
10 回答
你可以尝试这样的事情:
package_version(R.version)
getRversion()
GUI solution:
如果您使用的是RStudio,则可以在
Packages
窗格中检查软件包版本 .您可以使用
sessionInfo()
来实现这一目标 .但是,根据评论和下面的答案,有更好的选择
[1]'0.3.9'
要么:
检查R执行的版本:
R --version
或者在你进入R shell后打印
version$version.string
的内容EDIT
要检查已安装软件包的版本,请执行以下操作 .
加载库后,可以执行
sessionInfo ()
但要知道所有已安装软件包的列表:
或者要提取特定的库版本,一旦使用上面的
installed.package
函数提取了信息,只需在矩阵的第一维中使用包的名称 .以上将打印RANN库和图形库的版本 .
使用R方法
packageDescription
获取已安装的软件包描述,对于版本,只需使用$Version
:根据之前的答案,这里有一个打印R版本的简单替代方法,后面是命名空间中加载的每个包的名称和版本 . 它适用于Jupyter笔记本,我遇到了运行
sessionInfo()
和R --version
的麻烦 .日期:
Search()可以在会话中提供更简化的附加包列表(即没有sessionInfo()给出的详细信息)
search - R文档
描述:提供附加包的列表 . Search()
您可以使用
packageVersion
查看加载了哪个版本的软件包虽然听起来你想看看你正在运行什么版本的R,但在这种情况下@ Justin的
sessionInfo
建议是要走的路从技术上讲,此时的所有答案都是错误的 .
packageVersion
不返回已加载包的版本 . 它转到磁盘,并从那里获取包版本 .在大多数情况下,这不会产生任何影响,但有时却会产生影响 . 据我所知,获得加载包的版本的唯一方法是相当hackish:
其中
pkg
是包名 .编辑:我不确定何时添加此功能,但您也可以使用
getNamespaceVersion
,这是更清洁:使用以下代码获取系统中安装的R软件包的版本: