目次

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

  • チェック後のファイルRcmdrPlugin?.makevector.Rcheckを見るとわかると思うのですが、たぶんhhc.exe(Microsoft HTML Help WorkShop?)へのパスができていないと思われます。しらべるには、Windowsのコンソール画面でPathと入力してみてください。Pathの中に、C:\Program Files\HTML Help Workshop\が入っていますでしょうか? -- okinawa 2007-12-20 (木) 10:49:58
  • Pathが通っていることは確認出来ました。00install.outの中身を添付させていただきます。 申し忘れましたが。。当方の環境はR 2.6.1です(R 2.6.0でも並行して確認してます)。2007-12-20 (木) 13:29:58
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'
  • R2.6.1にしても残念ながらこちらでは再現できません。instフォルダの中は、etcフォルダで、その中にmenu.txtがありますか?ただ、同じような現象が出た記憶があり、そのときはPathへの追加情報を、;"C:/Program Files/R/R-2.5.1/bin/"のようにダブルコーテーション付きにしたらエラーが出なくなったような記憶があります。その後、ダブルコーテーションなしにしても動いてたので問題ないかと思っていました。 -- okinawa 2007-12-20 (木) 14:37:03
  • instフォルダの中は、etcフォルダで、その中にmenu.txtがあります。(ダウンロードしたままです)各実行ファイルへパスが通っているかもDOS上で確認出来ているのですが。。お手数おかけしてすみませんでした。 -- 2007-12-20 (木) 15:12:37
  • Perlがいるのでは? -- 2007-12-20 (木) 15:58:27
  • RtoolsにVanilla Perlが入っていますので、いっしょにインストールされると思います。もしかして、すでにActivePerl?がはいってしまっているとか。 -- okinawa 2007-12-20 (木) 16:25:03
  • ActivePerl?は入れておりません。試しにActivePerl?を入れて(パスも通して)やってみましたが、やはり上手くいきません。。 -- 2007-12-21 (金) 10:06:24
  • Rtoolsとかを全て消去して、全て再インストールしたほうがいいかもしれませんね。VMwareで素のwindows2003server上で構築しましたが、ちゃんと動きました。なにかが悪さをしているような・・・。 -- okinawa 2007-12-21 (金) 11:52:55
  • そうだ、Rのオブジェクトはまっさらな状態(オブジェクトを全て消去)からはじめてますか? -- okinawa 2007-12-21 (金) 11:59:38
  • はい、Rのオブジェクトはまっさらな状態(オブジェクトを全て消去)からはじめています。Rも全バージョンアンインストールしております、今度はRtoolsとかを全て消去して、全て再インストールしてみます。それでもだめなら、OSを再インストールしてみます。 -- 2007-12-21 (金) 12:43:05
  • 上の補足ですが、おそらく別のソフトと競合している可能性があると思い、ただいまPATHをひとつひとつ外してtrial and errorしているところです(私は関係ありませんでしたが、例えばplatexとMik-TeXの競合など)。 -- 2007-12-21 (金) 12:50:07
  • 結局、どのソフトと競合しているかが分からず、OSを再インストールして解決しました。どのソフトと競合していたかは引き続き調査します。(分かりましたら報告させていただきます)
    ちなみに、最終的な環境はR2.5.1+WindowsXPです。 -- 2007-12-22 (土) 12:50:20
  • 動作はしているのですが、引き続き調査しています。Microsoft HTML Help WorkShop? ですが、2バイト文字(C:\Documents and Settings\太郎\とか)が入っていると上手くインストールできませんのでお気をつけください。 -- 2007-12-27 (木) 09:08:52
  • ああ、そうですね。Rのパスも似たようなもんですよね。 -- okinawa 2007-12-27 (木) 09:19:13
  • okinawa さん,非常に有益なコンテンツを作成いただきましてありがとうございます!試してみたところ、楽々パッケージを作成することが出来ました!! okinawa さんの手順に従って私が試した結果をまとめ、複数の機能を追加する方法もちょこっと加えて、拙コンテンツ「R Commander」の説明書 に追記(126頁〜139頁)させていただきましたので、ご報告させていただきます。-- 舟尾? 2007-12-27 (木) 14:07:39
  • おお!流石わかりやすくまとめられていますね。 -- okinawa 2007-12-27 (木) 14:26:21
  • 初心者ですが、質問よろしいでしょうか。手順通りにやったのですが、このコメント欄の最初のものと同じようにエラーが出ます。環境はWindows7(x64)、R 2.13.0です。instフォルダがあってもなくてもダメな状態です。PATHの設定もできています。00install.outには、「 'c:/tmp/RcmdrPlugin?.makevector/man/Vector.Rd' 中に欠如もしくは空の itle 欄があります 」と記述されています。よろしくお願いいたします。 -- mami? 2011-05-12 (木) 00:04:14
  • この記事は相当古いので、最近のものでやっても上手く行かないと思います。現在、この件について追求する時間がありませんので、ご理解ください。 -- okinawa 2011-05-12 (木) 16:16:34
  • 了解です。いろいろと試してみます。 -- mami? 2011-05-12 (木) 20:49:56
  • 最新版でもいろいろ試してみてできました。そのまま実行すると、RDファイルのTitleがないといわれるので、Titleに何か文字を入れて保存、RCMD checkを実行するとマニュアル作成部分で怒られるので、作らないようにRCMD check パッケージ名 --no-manual にして、Error出ずにできました。 -- mami? 2011-05-16 (月) 09:13:52

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

アクセス数: 742 人


添付ファイル: filehcc4.jpg 103件 [詳細] filemiktex5.JPG 1347件 [詳細] fileRcmdr6.JPG 1350件 [詳細] filehcc1.jpg 1331件 [詳細] filercmd3.JPG 1292件 [詳細] fileRcmdr4.JPG 1317件 [詳細] filemiktex3.JPG 1345件 [詳細] filefolder1.JPG 1356件 [詳細] filertools3.jpg 1305件 [詳細] filercmd5.JPG 1339件 [詳細] fileinst.zip 1411件 [詳細] filercmd1.JPG 1443件 [詳細] filertools2.jpg 687件 [詳細] filercmd4.JPG 1252件 [詳細] filehcc3.jpg 1250件 [詳細] fileRcmdr1.JPG 1409件 [詳細] filercmd2.JPG 1404件 [詳細] filertools1.jpg 1253件 [詳細] filemiktex7.JPG 1293件 [詳細] filertools4.jpg 1287件 [詳細] filertools5.jpg 1321件 [詳細] filemakevector.r 1685件 [詳細] fileRcmdr3.JPG 121件 [詳細] filemiktex4.JPG 1290件 [詳細] filertools6.jpg 1295件 [詳細] filertools7.jpg 1266件 [詳細] filergui2.JPG 1348件 [詳細] filemiktex6.JPG 1351件 [詳細] fileRcmdr7.JPG 120件 [詳細] fileRcmdr5.JPG 1295件 [詳細] fileRcmdr2.JPG 1364件 [詳細] filemiktex2.JPG 1343件 [詳細] filercmd6.JPG 1258件 [詳細] filehcc2.jpg 1351件 [詳細] filemiktex1.JPG 95件 [詳細] filePath設定.zip 1407件 [詳細]

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