mpi*_*tas 371 r version package
我正在弄清楚如何使用我的大学集群.它安装了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()
Run Code Online (Sandbox Code Playgroud)
它在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:
Run Code Online (Sandbox Code Playgroud)
所以似乎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)
Run Code Online (Sandbox Code Playgroud)
并且错误之前的输出确认我确实正在运行R 2.14.2并且我的R packages文件夹首先在搜索路径中.但我仍然得到错误.
所以我的问题是如何确定在R中加载哪个版本的软件包?我可以看到 installed.packages
所有已安装的软件包,所以可能有一些函数列出了加载软件包的类似信息?
Jus*_*tin 481
你可以用它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
>
Run Code Online (Sandbox Code Playgroud)
但是,根据评论和下面的答案,有更好的选择
> packageVersion("snow")
Run Code Online (Sandbox Code Playgroud)
[1]'0.3.9'
要么:
"Rmpi" %in% loadedNamespaces()
Run Code Online (Sandbox Code Playgroud)
GSe*_*See 261
您可以使用packageVersion
以查看加载的包的版本
> packageVersion("snow")
[1] ‘0.3.9’
Run Code Online (Sandbox Code Playgroud)
虽然听起来你想看看你正在运行什么版本的R,但在这种情况下@ Justin的sessionInfo
建议是要走的路
pho*_*xis 21
要检查R执行的版本: R --version
或者在你进入R shell后打印内容 version$version.string
编辑
要检查已安装软件包的版本,请执行以下操作.
加载库后,您可以执行 sessionInfo ()
但要知道所有已安装软件包的列表:
packinfo <- installed.packages(fields = c("Package", "Version"))
packinfo[,c("Package", "Version")]
Run Code Online (Sandbox Code Playgroud)
或者要提取特定的库版本,一旦使用上述installed.package
函数提取信息,只需在矩阵的第一维中使用包的名称.
packinfo["RANN",c("Package", "Version")]
packinfo["graphics",c("Package", "Version")]
Run Code Online (Sandbox Code Playgroud)
以上将打印RANN库和图形库的版本.
Gab*_*rdi 18
从技术上讲,此时的所有答案都是错误的.packageVersion
不返回已加载包的版本.它转到磁盘,并从那里获取包版本.
在大多数情况下,这不会产生任何影响,但有时却会产生影响.据我所知,获得加载包的版本的唯一方法是相当hackish:
asNamespace(pkg)$`.__NAMESPACE__.`$spec[["version"]]
Run Code Online (Sandbox Code Playgroud)
pkg
包名称在哪里.
编辑:我不确定何时添加此功能,但您也可以使用getNamespaceVersion
,这是更清洁:
getNamespaceVersion(pkg)
Run Code Online (Sandbox Code Playgroud)
基于前面的答案,这里有一个简单的替代方法来打印 R 版本,然后是命名空间中加载的每个包的名称和版本。它适用于 Jupyter 笔记本,在那里我在运行sessionInfo()
和R --version
.
print(paste("R", getRversion()))
print("-------------")
for (package_name in sort(loadedNamespaces())) {
print(paste(package_name, packageVersion(package_name)))
}
Run Code Online (Sandbox Code Playgroud)
出去:
[1] "R 3.2.2"
[1] "-------------"
[1] "AnnotationDbi 1.32.2"
[1] "Biobase 2.30.0"
[1] "BiocGenerics 0.16.1"
[1] "BiocParallel 1.4.3"
[1] "DBI 0.3.1"
[1] "DESeq2 1.10.0"
[1] "Formula 1.2.1"
[1] "GenomeInfoDb 1.6.1"
[1] "GenomicRanges 1.22.3"
[1] "Hmisc 3.17.0"
[1] "IRanges 2.4.6"
[1] "IRdisplay 0.3"
[1] "IRkernel 0.5"
Run Code Online (Sandbox Code Playgroud)
使用R方法packageDescription
获取已安装的软件包描述,对于版本,只需使用$Version
:
packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"
Run Code Online (Sandbox Code Playgroud)
老问题,但不是答案之一,是我最喜欢的命令,用于快速、简短地概述所有已加载的包:
(.packages())
Run Code Online (Sandbox Code Playgroud)
要查看所有加载的软件包安装了哪个版本,只需使用上面的命令进行子集化即可installed.packages()
。
installed.packages()[(.packages()),3]
Run Code Online (Sandbox Code Playgroud)
通过更改列号(包版本为 3),您可以获得存储在installed.packages()
易于阅读的矩阵中的任何其他信息。以下是版本号和依赖项的示例:
installed.packages()[(.packages()),c(3,5)]
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
325247 次 |
最近记录: |