- RtoolsをWindowsに入れる
- こちらから
- ダウンロードしてSetUp.exeを実行する
- Rtoolsはコンパイラ(gccらしい)やperlを使ったもろもろを実行させる必要があるので、それらがインストールされる
- セットアップ時にRtoolsを使うためのパス変更をするオプションもあるので、それを選択すると、以下がWindowsのシステムパスの先頭に書き込まれる
c:\Rtools\bin;c:\Rtools\perl\bin;c:\Rtools\MinGW\bin;c:\Rtools\MinGW64\bin;
- Rで作業をしよう
- 以下のように、3つの関数"LorenzAttractor","Draw3DLorenzAttractor","DrawPairWiseLorenzAttractor"を作り、データ"LA"を作る
- これをRのpackage.skeleton()関数に渡す。パッケージ名を"LorenzAttractor"と指定しよう
LorenzAttractor<-function(Np=1000,dt=0.01,x=runif(3)){
xs<-matrix(0,Np,3)
xs[1,]<-x
for(i in 2:Np){
xs[i,1]<-xs[i-1,1]+(-10*xs[i-1,1]+10*xs[i-1,2])*dt
xs[i,2]<-xs[i-1,2]+(28*xs[i-1,1]-xs[i-1,2]-xs[i-1,1]*xs[i-1,3])*dt
xs[i,3]<-xs[i-1,3]+(-8/3*xs[i-1,3]+xs[i-1,1]*xs[i-1,2])*dt
}
list(xs=xs,Np=Np,dt=dt,x=x)
}
Draw3DLorenzAttractor<-function(LA){
library(rgl)
xs<-LA$xs
plot3d(xs[,1],xs[,2],xs[,3],col=rainbow(1000),cex=0.1)
}
DrawPairWiseLorenzAttractor<-function(LA){
xs<-LA$xs
plot(as.data.frame(xs))
}
LA<-LorenzAttractor()
Draw3DLorenzAttractor(LA)
DrawPairWiseLorenzAttractor(LA)
package.skeleton("LorenzAttractor",c("LorenzAttractor","Draw3DLorenzAttractor","DrawPairWiseLorenzAttractor","LA"))
- package.skeleton()の出力ファイルの処理
- Rの作業ディレクトリにパッケージ名のフォルダができる
- フォルダ以下には複数のフォルダとファイルができる
- このフォルダのうち、"man"フォルダの中にできるファイルは一部、書き換えないと、パッケージ化処理が回らないので、"Title"と"examples"とを適切に書き換える(アルファベットで)
- パッケージ作成
- コマンドラインのRを動かせるように、WindowsのシステムPATHにRを指定する。
- 「コンピュータ」を右クリックして、「システムの詳細設定」に進み「環境変数」へ、次いで、「システム環境変数」の「PATH」を選び、以下の文字列(Rのインストール先に合わせて)を書き込む
C:\Program Files\R\R-2.12.0\bin
-
- コマンドラインで、"R"というコマンドを打って、Rがコマンドラインで立ち上がればOK
- "R CMD check LorenzAttractor --no-latex --no-install"でチックしてWarningだけなら次に進める
- " R CMD build LorenzAttractor --binary" で"LorenzAttractor.zip"なる配布形式のzipファイルができる
- パッケージの利用
- zipファイルはローカルにあるので、RGUIのツールバーから「パッケージ」→「ローカルにあるzipファイルからの…」で、zipファイルを指定する
utils:::menuInstallLocal()
パッケージ 'LorenzAttractor' は無事に開封され、MD5 サムもチェックされました
-
- となるので、"library(LorenzAttractor)"として、"help(LorenzAttractor)"とすれば、先ほど、何もヘルプにならないヘルプファイル("man"フォルダの中の"パッケージ名-package.Rd")の中身が表示される
- さらにそのパッケージのヘルプファイルの末尾のクリッカブルな"index"を選べば、個々の関数などのヘルプファイル(同じく"xxx.Rd"ファイルの中身なので、そこで仕事をしておかないと、中身はプアなまま)を開くことができる