7

R で必要なパッケージのリストを生成できる関数はありますか? 「ピップ フリーズ」に似たもので、環境をすばやく複製できますか?

4

2 に答える 2

5

曖昧でなくてありがとう。環境の複製について言及したので、これらの利用可能なパッケージの可用性と名前空間に関する情報を次に示します。

@smci によって言及された関数に加えて.Packages、ライブラリの場所 path で利用可能なすべてのパッケージが一覧表示されますlib.loc。そしてfind.package、パッケージへのパスが表示されます。find.packagesパッケージの可用性を判断する際に問題が発生する可能性があることに注意してください 。requireが推奨される方法です (?find.package説明については、を参照してください)。

> x <- .packages(TRUE)
> head(x)
# [1] "assertthat"      "BH"              "car"             "data.table"     
# [5] "digest"          "dplyr"
> f <- find.package(x)
> sample(f, 5)
# [1] "/home/richard/R/x86_64-pc-linux-gnu-library/3.1/latticeExtra"  
# [2] "/home/richard/R/x86_64-pc-linux-gnu-library/3.1/Lahman"        
# [3] "/home/richard/R/x86_64-pc-linux-gnu-library/3.1/microbenchmark"
# [4] "/usr/lib/R/library/tools"                                      
# [5] "/home/richard/R/x86_64-pc-linux-gnu-library/3.1/knitr" 

のそれらのパッケージの名前空間を持つ環境のリストについては、x(とりわけ) を使用できます。getNamespace

> sapply(x, getNamespace)[1:3]
# $assertthat
# <environment: namespace:assertthat>

# $BH
# <environment: namespace:BH>

# $car
# <environment: namespace:car>
于 2014-05-03T05:37:58.647 に答える
4

「問題のコードを実行した後」を意味する場合:

  • loadedNamespaces()(パッケージ名のみ、または)
  • search()@Richard Scrivenが言ったように

しかし、問題のコードを実行せずに静的に分析するつもりなら、私が知っているツールはありませんが、の出力をマンジすると、egrep -R -w '(require|include|source)' *.r必要なものが得られるはずです(明らかに、含まれているが使用されていない、またはコメントアウトされたパッケージも選択されます)

于 2014-05-03T01:48:14.730 に答える