2017-11-29 6 views
1

私はrpy2を使ってPythonから呼び出すRスクリプトを持っています。これは、dplyr、doBy、およびggplot2を使用します。スクリプトには、これら3つのパッケージのinstall.packagesコマンドがあります。パッケージがすでにインストールされているとはいえ、パッケージをダウンロード、ビルド、インストールするのは非常に時間がかかることです。パッケージがまだインストールされていない場合にのみインストールを実行する方法はありますか?パッケージの繰り返しインストールを防止する、またはパッケージをRにインストールする前に

また、私はドッカーコンテナで実行します。したがって、コンテナがインスタンス化された後は、スクリプトが初めて実行されたときにパッケージは存在しません。パッケージをあらかじめロードする方法はありますか?その場合、これらのパッケージのinstall.packagesコマンドは必要ありません。上記の質問はうまくいかないでしょう。あなたが必要とするパッケージの名前の文字ベクトルとしてrequired_packagesを定義した場合

+0

ドッカーファイルを共有できますか?どのイメージを使用していますか、イメージを構築する際にinstall.packagesからパッケージをインストールする方法は? – ganesshkumar

答えて

1

if (!require(package)) install.packages("package") 

ので、パッケージは、ライブラリで使用できない場合は、それがインストールされます。

+0

それは完璧に働いてくれてありがとう。 –

1
install.packages(setdiff(required_packages, installed.packages()[,"Package"])) 

は、この行は、あなたが現在持っていないパッケージをインストールします。あなたのケースのためにそう

:私は常に使用

required_packages <- c("dplyr", "doBy", "ggplot2") 
install.packages(setdiff(required_packages, installed.packages()[,"Package"])) 
関連する問題