目次

RcmdrPlugin超入門

 Rユーザー会2007でRcommanderのPluginの作り方を知りたい方が多いように感じましたので、私が試した方法を公開します。
ただし、Windows2000SP4,XPSP2上で作成する場合の方法ですので、Mac,Linuxの方はご勘弁を。
なお、Pluginの作成に当たっては舟尾さんのRCommanderハンドブックの「RCommanderのカスタマイズ」を参考にしました。
(ここで公開している方法は、「なんちゃってRcmdrPlugin」の作成方法です。皆さんが開発したすばらしいツールをRcmdrPlugin化してみてください。)

参考資料

Writing R Extensions日本語訳(間瀬先生)
http://www.is.titech.ac.jp/~mase/mase/R-exts.jp/R-exts.jp.html#SEC_Top
Writing R Extensions本家
http://cran.r-project.org/doc/manuals/R-exts.html
The R Commander: A Basic-Statistics GUI for R
http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/index.html
Extending the R Commander by "Plug-In" Packages <=GOOD!
http://tolstoy.newcastle.edu.au/R/e3/help/att-2806/wrapper.pdf

RjpWiki内
パッケージを作る
私的パッケージ作成法
Windowsでパッケージを自作
Rから他言語利用

ビルドする環境の設定

Windowsでパッケージをビルドするためには、環境の設定が必要になります。この環境はパッケージのビルドだけではなく、Rをソースからビルドする時にも利用できます。
(注)過去のビルド環境設定の記事には「cygwin等のインストール」が書かれてあるものがありましたが、現在はRtools,Microsoft HTML Help WorkShop,MikTex,Inno Setupのインストールでビルド環境が作れます。

Rtoolsのインストール

下記のサイトから利用しているRのバージョンに適合するRtoolsをダウンロードしてインストールする。
http://www.murdoch-sutherland.com/Rtools/

rtools1.jpg


rtools3.jpg


rtools4.jpg


rtools5.jpg

パスが付加される。

rtools6.jpg


rtools7.jpg

再起動する。

Microsoft HTML Help WorkShopのインストール

下記のサイトからHtmlhelp.exeをダウンロードしてhhc.exeをインストールする。hhc.exeはソースをビルドするときにヘルプファイル(.chm)を作成するのに利用されます。
http://msdn2.microsoft.com/en-us/library/ms669985.aspx

hcc1.jpg


hcc2.jpg


hcc3.jpg


hcc4.jpg

Pathの設定をしてくれないので、後で設定が必要。

MikTexのインストール

http://www.miktex.org/

miktex1.JPG


miktex2.JPG


miktex3.JPG


miktex4.JPG


miktex5.JPG


miktex6.JPG


miktex7.JPG


Pathは自動的に設定される。

Inno Setupのインストール

http://jrsoftware.org/isinfo.php (とりあえず保留)

システム環境変数へのパスの設定

XPでは[コントロールパネル][システム][詳細設定][環境変数][システム環境変数](2000では[コントロールパネル][システム][詳細][環境変数][システム環境変数])の中にPathという環境変数がありますので、R、hhc.exeへのパス情報を付加してください。(Rtools,MiKTexは自動で設定されます)

;C:\Program Files\R\R-2.5.1\bin
;C:\Program Files\HTML Help Workshop

この設定がきちんとできていないと、チェックやビルドの時にエラーが多発します。
手動で設定するのが面倒な場合は、下記のツールを用意しましたのでお使いください。zip解凍後、Path設定.wsfをダブルクリックしてください。これはR2.5.1用です。他のバージョンで使う場合は、path.txtの内容を変更してください。
(注)Path設定.wsfを何度も起動すると、いくつもPathが作られてしまいます。消すときは、手動でお願いします。

(注意!)システム環境変数のPathを変更した場合は必ずOSを再起動してください。再起動しないと設定が反映されません。

ソースファイルの雛形の生成

*利用するコード

makevector.rは舟尾さんのRCommanderハンドブックのMyAdd関数を元に作成しました。

*利用するデータ

inst.zipはダウンロード後解凍しておく

まずRguiを起動し、

Vector <-function(){
 initializeDialog(title="ベクトル生成")
 Var1      <- tclVar("")
 Var1Entry <- tkentry(top, width="6", textvariable=Var1)
 Var2      <- tclVar("10")
 Var2Entry <- tkentry(top, width="6", textvariable=Var2)
 onOK <- function(){
   closeDialog()
   XXX <- as.numeric(tclvalue(Var1))
   YYY <- as.numeric(tclvalue(Var2))
   logger("ベクトルを生成します:")
   command <- paste(XXX, ":", YYY, sep="")
   doItAndPrint(command)
   tkfocus(CommanderWindow())
 }
 OKCancelHelp(helpSubject="+")
 tkgrid(tklabel(top, text=gettextRcmdr("引数1")), Var1Entry, sticky="e")
 tkgrid(tklabel(top, text=gettextRcmdr("引数2")), Var2Entry, sticky="e")
 tkgrid(buttonsFrame, columnspan=2, sticky="w")
 tkgrid.configure(Var1Entry, sticky="w")
 tkgrid.configure(Var2Entry, sticky="w")
 dialogSuffix(rows=3, columns=2, focus=Var1Entry)
}
package.skeleton(name="RcmdrPlugin.makevector",path="c:/")

C:直下にRcmdrPlugin.makevectorフォルダが生成される

各種ファイルの設定

とりあえず省略(CRANに登録するならきちんと書く)

menu.txtの置き場所

folder1.JPG

inst.zipをダウンロードし、解凍すると[inst][etc][menu.txt]が入っている
RcmdrPlugin.makevectorフォルダ内に[inst]フォルダごと投入
menu.txtがRCommanderのメニューになる

ソースファイルのチェック

 Windowsのコマンド画面

rcmd1.JPG
cd c:\
RCMD check RcmdrPlugin.makevector --no-examples

 --no-examplesを指定しないと、exampleの作成をしようとしてエラーになる
 エラーにならなければOK

rcmd2.JPG

 チェックが進行し

rcmd3.JPG

 チェック終了

ビルド実行

 Windowsのコマンド画面

rcmd4.JPG
RCMD build --binary RcmdrPlugin.makevector
rcmd5.JPG
rcmd6.JPG

 RcmdrPlugin.makevector_1.0.zipが生成され、ビルドが終了する
 --binary無しだと、tar.gzファイル(ソースファイル)が作成される
 エラーが発生した場合は、設定の何かが間違っているので最初から手順を確認する
 Pathの設定を特に確認すること

パッケージのインストール

RcmdrPlugin.makevectorパッケージのインストール

rgui2.JPG

 Rguiから[パッケージ][ローカルにあるzipファイルからのパッケージのインストール...]で
 RcmdrPlugin.makevector_1.0.zipをインストールする
 インストールがうまくいかない場合はプログラムミスの可能性があるので再度コードをチェック(とくにmenu.txtの内容)

RCommanderの実行

Rcmdr1.JPG
library(Rcmdr)

 2度目以降は

Commander()

 RCommanderが起動したら、[ツール][Rcmdrプラグインのロード...]で

Rcmdr2.JPG

 RcmdrPlugin.makevectorを選択する

Rcmdr3.JPG

 RCommanderが再起動して、

Rcmdr4.JPG

[ベクトル生成]メニューが追加される

Rcmdr5.JPG

 実際に実行すると

Rcmdr6.JPG

 こうなる

Rcmdr7.JPG

パッケージのアンインストール

remove.packages("RcmdrPlugin.makevector")

コメント欄

C:\>cd c:\
C:\>RCMD check RcmdrPlugin.makevector --no-examples
* checking for working latex ... OK
* using log directory 'C:/RcmdrPlugin.makevector.Rcheck'
* using R version 2.6.1 (2007-11-26)
* checking for file 'RcmdrPlugin.makevector/DESCRIPTION' ... OK
* checking extension type ... Package
* this is package 'RcmdrPlugin.makevector' version '1.0'
* checking package dependencies ... OK
* checking if this is a source package ... OK
* checking whether package 'RcmdrPlugin.makevector' can be installed ... ERROR
Installation failed.
See 'C:/RcmdrPlugin.makevector.Rcheck/00install.out' for details.

instフォルダのところで躓いている様なので、RCMD checkのところではinstフォルダを入れずに実行し、chmが生成されてからinstフォルダを然るべき場所に入れてRCMD buildを実行するとやはりエラーが出ます。

C:\>RCMD build --binary RcmdrPlugin.makevector

* checking for file 'RcmdrPlugin.makevector/DESCRIPTION' ... OK
* preparing 'RcmdrPlugin.makevector':
* checking DESCRIPTION meta-information ... OK
* removing junk files
* checking for LF line-endings in source and make files
* checking for empty or unneeded directories
* building binary distribution
WARNING: some HTML links may not be found
installing R.css in C:/***************/Temp/Rinst174092147

Using auto-selected zip options ''

---------- Making package RcmdrPlugin.makevector ------------
  adding build stamp to DESCRIPTION
  installing R files
  installing inst files
FIND: パラメータの書式が違います
make[2]: *** [C:/***************/Temp/Rinst174092147/RcmdrPlugin.
makevector/inst] Error 2
make[1]: *** [all] Error 2
make: *** [pkg-RcmdrPlugin.makevector] Error 2
*** Installation of RcmdrPlugin.makevector failed ***

Removing 'C:/***************/Temp/Rinst174092147/RcmdrPlugin.makevector'
 ERROR
* installation failed

環境設定の確認として、instフォルダを入れずに上記手順を実行すると、エラーもなく無事にパッケージが出来上がるので、環境設定は問題ないと思うのですが。。-- 2007-12-20 (木) 09:53:02

installing R.css in C:/RcmdrPlugin.makevector.Rcheck
---------- Making package RcmdrPlugin.makevector ------------
 adding build stamp to DESCRIPTION
 installing R files
 installing inst files 
FIND: パラメータの書式が違います  
make[2]: *** [C:/RcmdrPlugin.makevector.Rcheck/RcmdrPlugin.makevector/inst]   Error 2
make[1]: *** [all] Error 2
make: *** [pkg-RcmdrPlugin.makevector] Error 2
*** Installation of RcmdrPlugin.makevector failed ***

Removing 'C:/RcmdrPlugin.makevector.Rcheck/RcmdrPlugin.makevector'

ここはokinawaが作成しました。

アクセス数: 5424 人


添付ファイル: filertools1.jpg 2169件 [詳細] filercmd6.JPG 2184件 [詳細] fileRcmdr4.JPG 2377件 [詳細] filemiktex7.JPG 2324件 [詳細] fileRcmdr6.JPG 2254件 [詳細] filemiktex5.JPG 2468件 [詳細] filercmd4.JPG 2338件 [詳細] fileRcmdr3.JPG 1090件 [詳細] filercmd1.JPG 2586件 [詳細] filehcc3.jpg 991件 [詳細] fileRcmdr1.JPG 2577件 [詳細] filercmd5.JPG 2501件 [詳細] filehcc1.jpg 2361件 [詳細] filertools4.jpg 2509件 [詳細] filemiktex2.JPG 2486件 [詳細] fileRcmdr7.JPG 964件 [詳細] fileRcmdr2.JPG 928件 [詳細] fileinst.zip 2242件 [詳細] filertools6.jpg 2435件 [詳細] filemiktex3.JPG 2426件 [詳細] filertools3.jpg 2423件 [詳細] filercmd2.JPG 2384件 [詳細] filertools2.jpg 1159件 [詳細] filefolder1.JPG 2391件 [詳細] fileRcmdr5.JPG 2371件 [詳細] filemiktex1.JPG 1197件 [詳細] filehcc2.jpg 893件 [詳細] filemiktex6.JPG 2568件 [詳細] filemiktex4.JPG 2372件 [詳細] filertools7.jpg 2364件 [詳細] filercmd3.JPG 2415件 [詳細] filehcc4.jpg 1207件 [詳細] filergui2.JPG 2470件 [詳細] filemakevector.r 2616件 [詳細] filertools5.jpg 2497件 [詳細] filePath設定.zip 2201件 [詳細]

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2023-03-25 (土) 11:19:17