私は自分の大学クラスターの使い方を考え出す過程にあります。 Rの2つのバージョンがインストールされています。システム全体の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用にコンパイルされたパッケージsnowバージョンをロードするようです。私はホームフォルダにR 2.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にロードされているかをどうやって決めるのですか?私は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を実行しているのかを確認したいようですが、その場合は@ JustinのsessionInfo
提案が最適です。
Rのバージョンを確認するには、次のコマンドを実行します。R --version
あるいはRシェルに入った後でversion$version.string
の内容を印刷する
_編集_
インストールされているパッケージのバージョンを確認するには、次の手順に従います。
ライブラリをロードしたら、sessionInfo ()
を実行できます。
しかし、インストールされているすべてのパッケージのリストを知るためには:
packinfo <- installed.packages(fields = c("Package", "Version"))
packinfo[,c("Package", "Version")]
特定のライブラリバージョンを抽出する場合は、上記のようにinstalled.package
関数を使用して情報を抽出したら、マトリックスの最初の次元のパッケージの名前を使用します。
packinfo["RANN",c("Package", "Version")]
packinfo["graphics",c("Package", "Version")]
上記はRANNライブラリとグラフィックライブラリのバージョンを印刷します。
あなたはこのようなことを試すことができます:
package_version(R.version)
getRversion()
技術的に言えば、現時点でのすべての答えは間違っています。 packageVersion
はロードされたパッケージのバージョンを返しません。それはディスクに行き、そこからパッケージバージョンを取得します。
ほとんどの場合、これで違いはありませんが、場合によっては違います。私が言うことができる限り、 loaded パッケージのバージョンを入手する唯一の方法はかなりハックです:
asNamespace(pkg)$`.__NAMESPACE__.`$spec[["version"]]
pkg
はパッケージ名です。
編集:私はこの関数がいつ追加されたのかわからないが、あなたはgetNamespaceVersion
を使うこともできます、これはよりきれいです:
getNamespaceVersion(pkg)
インストールされたパッケージの説明を取得するにはRのメソッドpackageDescription
を使い、バージョンには単に$Version
を次のように使います。
packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"
前の答えに基づいて、これはRバージョンを印刷する簡単な代替方法で、その後に名前空間にロードされた各パッケージの名前とバージョンが続きます。それは私がsessionInfo()
とR --version
の実行に問題を抱えていたJupyterノートブックで動作します。
print(paste("R", getRversion()))
print("-------------")
for (package_name in sort(loadedNamespaces())) {
print(paste(package_name, packageVersion(package_name)))
}
でる:
[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"
システムにインストールされているRパッケージのバージョンを取得するには、次のコードを使用します。
installed.packages(fields = c ("Package", "Version"))
単にhelp(package="my_package")
を使って、示されたバージョンを見てください。
これは同じ.libPaths
に他のパッケージバージョンがないと仮定しています。
Search()は、セッション内の添付パッケージのより単純化されたリストを与えることができます(すなわち、sessionInfo()によって与えられる詳細な情報なしで)。
search {base} - Rドキュメント
説明:添付されているパッケージの一覧を表示します。 検索()
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"