追加パッケージをなんでもかんでも追加する
必要なパッケージを選んで拡張できるのはRのよいところですが、それが逆に面倒でHDDに余裕のあるひとは全部入れちゃいましょうか。
## 1. CRANから一覧を入手 packs <- available.packages(contriburl=contrib.url("http://cran.md.tsukuba.ac.jp/")) # 2. 一覧をもとにダウンロードとインストール install.packages(packs[,1],contriburl=contrib.url("http://cran.md.tsukuba.ac.jp/"))
たぶんこれで走ります
うまくいかなかったらだれか書き直して下さいw
ときどき(気が向いたら)以下を実行する。全てのパッケージをインストール・アップデートできるはずョ。
available <- available.packages()[,1] installed <- installed.packages()[,1] to.install <- setdiff(available, installed) if (length(to.install) != 0) install.packages(to.install) update.packages(ask=FALSE)
どれも | R --vanilla --slave へコマンドを string で渡している。 インストール済みパッケージ一覧は、
$ echo 'library()' | R --vanilla --slave
インストール済みパッケージ全てアップデートは、
$ echo 'options(repos="http://cran.md.tsukuba.ac.jp/");update.packages(ask=F)' | R --vanilla --slave
複数のパッケッージ名を与えて、インストール用コマンドへ整形は、
$ echo stats$'\n'boot | ./mytransform.sh options(repos="http://cran.md.tsukuba.ac.jp/");install.packages(setdiff(c("stats", "boot"),rownames(installed.packages())),dep=T) $ $ cat mytransform.sh #!/bin/sh repos="http://cran.md.tsukuba.ac.jp/" plist="" delim="" while read x ; do plist=$plist$delim"\""$x"\"" delim=", " done pinstall="install.packages(setdiff(c("$plist"),rownames(installed.packages())),dep=T)" echo "options(repos=\""$repos"\");"$pinstall exit 0
カウンタ:4317
コメント
packs <- available.packages(contriburl=contrib.url("http://cran.md.tsukuba.ac.jp/")) junk <- sapply(packs[,1], function(l) try(install.packages(l, lib='C:/Users/foo/Documents/R/win-library/2.10', contriburl=contrib.url("http://cran.md.tsukuba.ac.jp/"))))理想的には、リポジトリにあるけどまだインストールしていないものをインストールすることと、インストールされてはいるがリポジトリに新版があるときにはアップデートしてくれるようにしたい。 -- 河童の屁 2009-11-27 (金) 11:22:35