目次

#contents

*RcmdrPlugin超入門 [#vb0bf51c]
 Rユーザー会2007でRcommanderのPluginの作り方を知りたい方が多いように感じましたので、私が試した方法を公開します。~
ただし、Windows2000SP4,XPSP2上で作成する場合の方法ですので、Mac,Linuxの方はご勘弁を。~
なお、Pluginの作成に当たっては舟尾さんの[[RCommanderハンドブック:http://www.amazon.co.jp/dp/4861671914]]の「RCommanderのカスタマイズ」を参考にしました。~
(ここで公開している方法は、「なんちゃってRcmdrPlugin」の作成方法です。皆さんが開発したすばらしいツールをRcmdrPlugin化してみてください。)~
*参考資料 [#dbc9506e]
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から他言語利用]]~
*ビルドする環境の設定 [#i75d09b9]
Windowsでパッケージをビルドするためには、環境の設定が必要になります。この環境はパッケージのビルドだけではなく、Rをソースからビルドする時にも利用できます。~
(注)過去のビルド環境設定の記事には「cygwin等のインストール」が書かれてあるものがありましたが、現在はRtools,Microsoft HTML Help WorkShop,MikTex,Inno Setupのインストールでビルド環境が作れます。~
**Rtoolsのインストール [#bd543018]
下記のサイトから利用しているRのバージョンに適合するRtoolsをダウンロードしてインストールする。~
http://www.murdoch-sutherland.com/Rtools/~
~
#ref(rtools1.jpg)~
~
#ref(rtools3.jpg)~
~
#ref(rtools4.jpg)~
~
#ref(rtools5.jpg)~
パスが付加される。~
#ref(rtools6.jpg)~
~
#ref(rtools7.jpg)~
再起動する。~

**Microsoft HTML Help WorkShopのインストール [#zcc2ad9b]
下記のサイトからHtmlhelp.exeをダウンロードしてhhc.exeをインストールする。hhc.exeはソースをビルドするときにヘルプファイル(.chm)を作成するのに利用されます。~
http://msdn2.microsoft.com/en-us/library/ms669985.aspx~
~
#ref(hcc1.jpg)~
~
#ref(hcc2.jpg)~
~
#ref(hcc3.jpg)~
~
#ref(hcc4.jpg)~
Pathの設定をしてくれないので、後で設定が必要。~
**MikTexのインストール [#s3231d51]
http://www.miktex.org/~
#ref(miktex1.JPG)~
~
#ref(miktex2.JPG)~
~
#ref(miktex3.JPG)~
~
#ref(miktex4.JPG)~
~
#ref(miktex5.JPG)~
~
#ref(miktex6.JPG)~
~
#ref(miktex7.JPG)~
~
Pathは自動的に設定される。~
~
**Inno Setupのインストール [#ca760591]
http://jrsoftware.org/isinfo.php
(とりあえず保留)

*システム環境変数へのパスの設定 [#qbcdbd11]
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が作られてしまいます。消すときは、手動でお願いします。
#ref(Path設定.zip)~

(注意!)システム環境変数のPathを変更した場合は必ずOSを再起動してください。再起動しないと設定が反映されません。~
*ソースファイルの雛形の生成 [#qef78740]
*利用するコード~
#ref(makevector.r)~
makevector.rは舟尾さんの[[RCommanderハンドブック:http://www.amazon.co.jp/dp/4861671914]]のMyAdd関数を元に作成しました。~
~
*利用するデータ~
#ref(inst.zip)~
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フォルダが生成される

**各種ファイルの設定 [#i83d712c]
とりあえず省略(CRANに登録するならきちんと書く)
**menu.txtの置き場所 [#ke19627b]
#ref(folder1.JPG)

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

*ソースファイルのチェック [#y43491c3]
 Windowsのコマンド画面
#ref(rcmd1.JPG)
 cd c:\
 RCMD check RcmdrPlugin.makevector --no-examples
 --no-examplesを指定しないと、exampleの作成をしようとしてエラーになる~
 エラーにならなければOK
#ref(rcmd2.JPG)
 チェックが進行し~
#ref(rcmd3.JPG)
 チェック終了~
*ビルド実行 [#wb1b0662]
 Windowsのコマンド画面
#ref(rcmd4.JPG)
 RCMD build --binary RcmdrPlugin.makevector

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

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

*RCommanderの実行 [#w315546c]
#ref(RcmdrPlugin超入門/Rcmdr1.JPG,50%)
 library(Rcmdr)
 2度目以降は~
 Commander()
 RCommanderが起動したら、[ツール][Rcmdrプラグインのロード...]で~
#ref(RcmdrPlugin超入門/Rcmdr2.JPG,50%)
 RcmdrPlugin.makevectorを選択する~
#ref(RcmdrPlugin超入門/Rcmdr3.JPG,100%)
 RCommanderが再起動して、~
#ref(RcmdrPlugin超入門/Rcmdr4.JPG,100%)
[ベクトル生成]メニューが追加される~
#ref(RcmdrPlugin超入門/Rcmdr5.JPG,50%)
 実際に実行すると
#ref(RcmdrPlugin超入門/Rcmdr6.JPG,50%)
 こうなる
#ref(RcmdrPlugin超入門/Rcmdr7.JPG,100%)

*パッケージのアンインストール [#u30230b3]
 remove.packages("RcmdrPlugin.makevector")

*コメント欄 [#bfcb6c38]
- 有益なコンテンツの作成、どうもありがとうございました。手順どおりにやったのですが、エラーが出てしまいます。 

 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フォルダを入れずに上記手順を実行すると、エラーもなく無事にパッケージが出来上がるので、環境設定は問題ないと思うのですが。。--  &new{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]] &new{2007-12-20 (木) 10:49:58};

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

#comment


ここは[[okinawa]]が作成しました。~

アクセス数:
&counter;
人

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS