追加パッケージをなんでもかんでも追加する

必要なパッケージを選んで拡張できるのは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

Mac OS なら(他の OS は?)

ときどき(気が向いたら)以下を実行する。全てのパッケージをインストール・アップデートできるはずョ。

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

カウンタ:1466


コメント

  • 全部ダウンロードするとどれくらいの時間がかかるのでしょうか。皆がこれを一斉にやると CRAN から睨まれそうな。日本や他の国のミラーでも同様の方法が使えるのでしょうか。 -- 心配症? 2004-01-24 (土) 22:56:41
  • 回線はもちろん、ファイルを処理するマシンパワーにもよりますが、DL自体は20から30分くらいだと思います。 -- マツシタ? 2004-01-24 (土) 23:00:39
  • ミラーは・・・試してみて報告をくださいw Linux版はDL後のファイル展開に結構時間を食いますんで、さらに2、30分見ておいたほうがいいかもw -- マツシタ? 2004-01-24 (土) 23:13:08
  • 20から30分というのはADSL(謎メガバイト)です。 -- ? 2004-01-24 (土) 23:14:46
  • 投票欄は投票のたびに更新表示が出、混乱を招く元になりますので、乱用されないようにお願いします。 -- 間瀬? 2004-01-25 (日) 08:07:30
  • あ、本当ですね。これは失礼しました。乱用ってつもりはなかったんですが(涙; -- マツシタ? 2004-01-25 (日) 13:27:12
  • 全部入れるとアップデートの確認に時間はかかりませんか? -- 2004-01-26 (月) 15:13:55
  • 筑波大のミラーから落とすように書き換えてみました。 -- aki 2004-06-28 (月) 00:31:17
  • おぉ、こんな便利な方法があったとは。先日、講義のためにまたKNOPPIXにRを入れたのですが、パッケージの追加が面倒でした。この方法を使うと楽ができそうです。ただ、依存ライブラリの関係でインストールに失敗したパッケージを抜いていくのが大変そうですが。。どなたか妙案がありますか? -- 谷村 2004-06-28 (月) 10:23:01
  • CRAN.packagesが廃止予定なので、available.packagesに変更しました。 -- マツシタ? 2006-12-27 (水) 23:00:04
  • R本体をアップデートしたときに、古いバージョンのRに既存のパッケージのみ新しいバージョンのRにインストールする一般的な方法をご存知の方いらっしゃいますか? -- takahashi? 2006-12-28 (木) 16:12:03
  • 古いバージョンのRを削除して残ったlibraryフォルダの中身を新しいバージョンのRのlibraryフォルダに移して、パッケージの更新をかけるというのはいかがですか? -- 2006-12-28 (木) 22:09:17
  • ノートPC(WinXP)にRをインストールして使っています.上記コマンドを実行したところ『path[1]"C:\Program Files\R\R-2.9.1\library/AIS": 指定されたファイルが見つかりません.。』というエラーが出ます.libraryフォルダを確認したところ,file〜(〜は8文字の英数字(ランダム生成?))というフォルダが作成されていました.そのfile〜フォルダの中に所望のパッケージ(例えばAIS)のフォルダが入っているという状況です. -- neko? 2009-07-18 (土) 12:13:17
  • 何らかの具合で、インストールしようとしているパッケージ(のファイル)がないといわれて、インストール全体が中止されてしまうことがあるので、以下のようにした。
    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
  • CRAN Task Viewが整備される前の2004年頃は全パッケージのインストールにまだ一定の意味があったが、現在の多様化とパッケージ数を考えるともう意味はないし、迷惑なだけだと思う。もちろん、全部のパッケージでどのくらいのHDD容量が必要かなどの興味に対する実験的な意味合いは残されているかもしれないが、実用的な意味はないだろう。加えて、外部ツールのインターフェイス系パッケージはそれぞれの外部ツールがインストールされていない機能しない。 -- 2013-10-22 (火) 13:14:23


トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Google
WWW を検索 OKADAJP.ORG を検索
Last-modified: 2015-03-01 (日) 01:15:59 (1717d)