Location : Home > Softwares > R
Title : RExcel 1.75
Toolbox Logo

RExcel 1.75

特徴

 RExcel は Excel から R を利用するためのヘルパー・アプリケーションである。データは Excel と R の間で(双方向に)変換される。Excel からcan call R の関数を呼び出し、計算を実行して結果を Excel に返すことができる。
 特に、RExcel には以下のような特徴がある:

  • R(D)COM サーバとともに利用すれば、R は Excel に対し、(不可視の)バックグラウンドサーバとなる。ユーザから R の詳細を隠すことができるので、統計学者でないエンドユーザ用のアプリケーションには有用である。
  • RCOM ライブラリとともに利用すれば、Excel と R プロセス通信するコマンドラインウィンドウを持つことができる。R サーバはフォアグラウンドプロセスである。これにより開発者が Excel と R コマンドラインで同時に通信ができる。RExcel アプリケーションのデバッグが簡単になる。フォアグラウンドサーバは R(D)COM サーバと同時にはインストールされない。これはインストールされる R パッケージ rcom に依存する。
  • RServerManager の支配下で稼動する R プロセスをサポートする。R サーバはサーバプールから充当される。Excel の異なるインスタンス(異なるマシンで稼動している)が同時に同一のデータに関する同一の R プロセスにアクセスすることができる。
  • Excel のセル内の式に R の関数を使うことができる。Excel の自動再計算機能から R の計算を制御する際に効果的である。
  • R のデータフレームと Excel のデータリストを接続する。
  • 欠損値を処理する。
  • ユーザから R を見えなくし、スタンドアロンの RExcel アプリケーションを構築して Excel を R のメインインタフェースとして使うことができる。(使用方法は RExcel のヘルプファイルに記載されている。)
  • RCommander が使えれば、RExcel メニューから利用可能である。

 RCOM ライブラリはフォアグラウンドサーバとともに稼動させるために RExcel アドイン構成を変更する Excel シートから利用する。RCOM ライブラリは R(D)COM サーバとともにはインストールされず、別途インストールされるべきである。
 さらにこのファイルには、アドイン内で VBA ソースコードを変更することで、 RExcel のサーバ設定を変更する方法が記されている。
 グラフィックはリモートサーバでは稼動しない。R グラフィックを利用するためにはサーバは RExcel クライアントと同一マシン上にインストールされていなければならない。しかしながらデータを計算するのにリモート R サーバを用い、その結果を用いて Excel のグラフィックを利用することはできる。

 RExcel の現行バージョンは Excel 2007 を全面的にサポートできていない。アドインは Excel 2007 にはインストールされない。Excel 2007 と古いバージョンがあっても同様である。この場合はアドインを手動でインストールしなければならない。アドインを設置しているディレクトリ(典型的には C:\Program Files\R\(D)COM Server\xls)にあるアドインファイルをいつものように登録しなければならない。
 現行バージョンは入手可能であるが古いExcelバージョンでのワークシートサイズの限界である 65536 行× 256 列の制限がかかっている。
 Excel 2007 を全面的にサポートするように改良した(1048576 行× 16384 列に対応)アドインのバージョンは http://rcom.univie.ac.at で入手可能である。詳しくはこのサイトの Wiki を見よ。
 

インストール

1. Background server

 RExcel をインストールする最もよくで最も簡単な方法は R(D)COM パッケージの一部としてインストールすることである。本パッケージのインストーラは RExcel のインストール方法を選択できる。R(D)COM (バックグラウンド)サーバ及び RServerManager によって管理される R プロセスとともに稼動するよう設定された RExcel をインストールすることができる。本パッケージのインストールは Windows レジストリにアクセスする権限を要求するため、権限を制限されているユーザは本パッケージを正しくインストールできない。
 リモート R サーバを利用するために、クライアントマシン上で RExcel を稼動させようとするユーザはリモートマシン上の R(D)COM サーバにアクセスしなければならない。Administrators が (D)COM プログラムを設定する権限を与えるユーティリティプログラム DCOMCNFG とともに稼動する。R(D)COM サーバは StatConnectorSrv としてレジストされており、必要とされたときに起動し、アクセスする権限を持つ。

2. Foreground server

 追加的にフォアグラウンドサーバと利用するためには RCOM をインストールしなければならない。このための最も簡単な方法は、RGui を起動して、CRANから RCOM をインストールすることである。

 本パッケージのインストールは Windows レジストリにアクセスする権限を要求するため、権限を制限されているユーザは本パッケージを正しくインストールできない。
 一旦 RCOM がインストールされると、 RExcel の"Set R server" メニュー項目に RExcel にフォアグランドサーバをインストール/アンインストールするボタンが追加される。
 インストールが終了した段階で既に、手動で起動しさえすれば RExcel からフォアグラウンドサーバを利用することができる。RExcel からフォアグランドサーバを起動できるようにしたければ <R_HOME>\RProfile に以下の行を追加しなければならない。


require(rcom)

 RExcel メニューの Start R メニュー項目からフォアグラウンドサーバを起動できるようになっている。
 パッケージ RCOM が RGui 起動時に自動でロードされるように RProfile に記述されている場合には、既存の RCOM の install.packages によるインストールを更新する前にこのオートスタートを停止する必要がある。
 現在では R(D)COM パッケージが同一マシンにインストールされているときにのみ RCOM パッケージが起動する。この仕様は将来のリリースで削除されるかもしれない。

3. Managed servers

 R(D)COM サーバ comes with RServerManagerAdmin. When 本プログラムが起動すると、同一ディレクトリにあるファイル StartServers.cfg を探索する。このファイルには起動すべき各サーバプロセスに対し1行の記述が必要で、この行はサーバプロセスの名称を含んでいなければならない。また一度に複数の名称を与えてもよい。その場合は RServerManagerAdmin はこのファイルの各行で与えられた名称に対応した R プロセスを起動する。
 これらのサーバはメニュー項目を用いて(バックグラウンドサーバやフォアグラウンドサーバの替わりに)RExcel に充当される。


RExcel->Set server->Serverpool exclusive

 または


RExcel->Set server->Serverpool shared

 managed servers を利用する理由は中央サーバで起動する R サーバプロセスの数が限られているからである。RServerManagerAdmin で起動されたサーバのみがユーザから利用可能である。これらのサーバへアクセスするためにはクライアントユーザには RServerManager.Serverpool へのアクセス権が必要である。(サーバへのアクセス権は Windows のアドミニストレータによって DCOMCNFG を通じて設定することができる。)

4. Installing RExcel only without any server

 アドミニストレータ権限がないクライアントであっても、サーバ抜きで RExcel だけをインストールすることも可能である。必要なファイルを含んでいる RExcelMinimalInstall.zip が http://sunsite.univie.ac.at/rcom/download から入手可能である。このファイルは全て以下のディレクトリに格納される必要がある。


C:\Documents and Settings\<user>\Application Data\Microsoft\Addins

 <user> はログインしているユーザの名前である。このディレクトリは非表示になっているかも知れないが、Windows Explorer のアドレスバーによってアクセス可能である。一旦全てのファイルが格納されれば、 Excelの Tools -> Addins メニューで RExcel が使用可能な状態で表示されるだろう。このメニューで使用可能な状態にすればインストールしたユーザには利用可能になる。RExcel をこの方法でインストールすればリモートバックグラウンドサーバ及びリモートマネージドサーバにアクセスすることができる。。ユーザはこれらのサーバへのアクセス権を必要とするし、この権限はサーバのアドミニストレータによって設定されるべきである。このアクセス権の設定方法は難しいかも知れないし、十分にテストを終えていない。

手動で RExcel の設定を変更

 RExcel がフォアグラウンドで使用され、RGui が起動していなければ RGui を起動する。RGui を起動したときに使われるコマンドラインオプションを指定することが可能である。これは以下のようにすればよい。


Public Const RGuiCommandLineOptions = ""

 実際には何か値を指定する。


Public Const RGuiCommandLineOptions = "--internet2"

 ユーザが R を直接見ないように Excel アプリケーションを開発することは可能である。R マクロをカスタム化したメニューから呼び出し、RExcel メニューを完全に隠すことができる。
 Excel メニューを隠すためには RExcel.xla の AAConfigParams モジュールの最初の行を


Public Const DisplayRExcelMenu = False

とすればよい。

 また、RExcel.xlaで(関数ではなく)マクロを利用する Excel ワークブックは、Excel のVBA開発環境で Tools->Reference リストにおける RExcelVBAlib への参照を設定しなければならない。

 サーバのタイプとロケーションは Excel マクロから設定可能である。

SetServerType(servertype)

 以下のサーバタイプを指定することができる。


stLocalExternal
stRemoteExternal
stLocalInternal
stRemoteInternal
stLocalPoolExclusive
stRemotePoolExclusive
stLocalPoolShared
stRemotePoolShared

SetServerName(servername)

 妥当なサーバネームを文字列として受け取る。サーバタイプは以下のもののみ。


stRemoteExternal
stRemoteInternal
stRemotePoolExlusive
stRemotePoolShared

SetProcessName(processname)

 妥当な R プロセスネームを文字列として受け取る(RServerManager で管理される)。サーバタイプは以下のもののみ。


stLocalPoolExclusive
stRemotePoolExclusive
stLocalPoolShared
stRemotePoolShared

 グラフィックはリモートサーバでは稼動しない。 R グラフィックスを利用するためには、サーバは RExcel クライアントと同一のマシンにインストールされていなければならない。
 異なるサーバタイプの設定は Set R Server メニュー項目の the Configure R server(s) ボタンで扱う。
 RExcel.xla におけるいくつかの定数を変更することで設定が可能である。
 クラスモジュール RServer における RExcel.xla は最初は以下のような行を含んでいる。


#Const TypedServer = True
#Const TypedBackground = True
#Const TypedForeground = False
#Const TypedPool = False

 これらの行は変更することができる。TypedServer は他の3行を稼動させるには True でなければならない。


#Const TypedForeground = True

は R の現在のバージョン用の RCOM がインストールされている場合にのみ作動する。

 以降で述べる要請は条件が満たされていなければならない。
 指定されたタイプで稼動するサーバは VBA IDE で参照設定されていなければならない。これはVBAメニューで Tools->References を選択し、表示されるダイアログの適切な項目をチェックすればよい。

#Const TypedBackground = True

は StatConnectorSrv 1.1 Type Library 及び StatConnTools への参照が必要であるし、

#Const TypedForeground = True

は RCOM 1.0 Type library への参照が必要で、

#Const TypedPool = True

は R COM サーバインスタンスのリポジトリへの参照が必要である。

 本パッケージはあるディレクトリ構造を仮定している。R 及び DCOM サーバは共有ディレクトリ 現在、標準的なインストールでは

C:\Program Files\R

である。

 ワークブックは2つのファイル C:\Program Files\R\(D)COM Server\tlb\StatConnectorSrv.tlb 及び C:\Program Files\R\(D)COM Server\bin\StatConnTools.exe の存在を確認を行う。R 及び/または (D)COM サーバを異なるディレクトリにインストールした場合には、設定プログラムは R の現行バージョンのホームディレクトリ(デフォルトでは C:Program FilesRR-2.4.1 であり、\..\(D)COM Server\tlb\StatConnectorSrv.tlb 及び \..\(D)COM Server\bin\StatConnTools.exe をそれぞれ付け加える)を取得することでこれを探索する。これらのファイルが異なる場所にあると、パスは設定プログラムで指定されるべきである。

 pool servers を動作させるには RServerManager.exe は StatConnTools.exe と同一ディレクトリになければならない。
 フォアグラウンドサーバを動作させるには RCOM パッケージは R の現行バージョンがインストールされ、レジストレーションされていなければならない。

著者

 Thomas Baier と Erich Neuwirth

参考資料

 R(D)COM server, rcom, RExcel の現行バージョン及び開発バージョンは常に http://rcom.univie.ac.at/ で入手可能である。

Toolbox Logo
Updated : 2008/05/26