パッケージが既にインストール済みか判定し、未インストールの場合実際にインストールする
【緩募】コンソールからR CMD INSTALL パッケージ名するときに、そのパッケージが既にインストール済みかを判定してくれて、未インストールの場合のみ実際にインストール処理が走る方法ご存じの方いらっしゃったら教えて下さい<(_ _)>
— WADA Kazuya (@wdkz) August 20, 2013
ちょいと違いますが、以下で定義しているinstall.package.ifnot.exist関数をコンソールから叩く用の
スクリプト(R CMD BATCHかRscript)を咬ませて使えばいいかな?
install.package.ifnot.exist <- function(name) { is.exist <- name %in% rownames(installed.packages()) if(!is.exist){install.packages(name)} }
たとえば手元にggplot2パッケージはインストールしてあるが、miceパッケージはないという場合だと
> install.package.ifnot.exist("ggplot2") > install.package.ifnot.exist("mice") trying URL 'http://cran.ism.ac.jp/bin/windows/contrib/3.0/mice_2.18.zip' Content type 'application/zip' length 733261 bytes (716 Kb) opened URL downloaded 716 Kb package ‘mice’ successfully unpacked and MD5 sums checked The downloaded binary packages are in C:\Users\teramonagi\AppData\Local\Temp\Rtmpq6K8uu\downloaded_packages
となって、ちゃんとmiceパッケージのみがインストールされる。