web-dev-qa-db-ja.com

どのパッケージバージョンがRにロードされているか調べる方法は?

私は自分の大学クラスターの使い方を考え出す過程にあります。 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でインストールされているすべてのパッケージを見ることができます、それでは多分ロードされたパッケージのための同様の情報をリストする何らかの機能がありますか?

332
mpiktas

それを達成するために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()
434
Justin

どのバージョンのパッケージがロードされているかを確認するためにpackageVersionを使うことができます。

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

どのバージョンのRを実行しているのかを確認したいようですが、その場合は@ JustinのsessionInfo提案が最適です。

247
GSee

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ライブラリとグラフィックライブラリのバージョンを印刷します。

20
phoxis

あなたはこのようなことを試すことができます:

  1. package_version(R.version)

  2. getRversion()

19
Sathish

技術的に言えば、現時点でのすべての答えは間違っています。 packageVersionはロードされたパッケージのバージョンを返しません。それはディスクに行き、そこからパッケージバージョンを取得します。

ほとんどの場合、これで違いはありませんが、場合によっては違います。私が言うことができる限り、 loaded パッケージのバージョンを入手する唯一の方法はかなりハックです:

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

pkgはパッケージ名です。

編集:私はこの関数がいつ追加されたのかわからないが、あなたはgetNamespaceVersionを使うこともできます、これはよりきれいです:

getNamespaceVersion(pkg)
15
Gabor Csardi

GUIソリューション:

RStudioを使用している場合は、Packagesペインでパッケージのバージョンを確認できます。

enter image description here

11
epo3

インストールされたパッケージの説明を取得するにはRのメソッドpackageDescriptionを使い、バージョンには単に$Versionを次のように使います。

packageDescription("AppliedPredictiveModeling")$Version
[1] "1.1-6"
5
krishna Prasad

前の答えに基づいて、これは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"
1
joelostblom

システムにインストールされているRパッケージのバージョンを取得するには、次のコードを使用します。

installed.packages(fields = c ("Package", "Version"))
1
Anjana

単にhelp(package="my_package")を使って、示されたバージョンを見てください。

これは同じ.libPathsに他のパッケージバージョンがないと仮定しています。

0
NelsonGon

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"