自作関数を毎回自動読み込みするスクリプト autoInclude

ソースファイル:autoInclude
webから直接読み込む場合、以下のコードをRで実行
source("http://noucobi.com/Rsource/autoInclude.R")

RではMatlabと違い、自作した関数は毎回source()によって読み込まなければ使うことができません。
まあたいしたことはないけど、毎回だとけっこうめんどくさい。
そんなとき、自作関数の使い方にも書きましたが、.Rprofileというファイルを作ることで、特定の作業をR起動時に自動実行することができます。
(いまの場合は自作関数のsource()のコト)

ただし問題は、この.Rprofileという名前のファイルがWindowsではすこぶる作りにくいこと。
これも前に書いたのですが、Windowsでは、たとえば既存のテキストファイルの名前を.Rprofileにしようとしても、エラーが出てできません。
どうやらドット"."で始まるファイル名は、エクスプローラでは作れないようで。
また、ネットに.Rprofileを置いておいても、ブラウザから保存する際に最初のドットがとれてしまいます。
なぜ…(´д`)

まあ実際は、メモ帳などで自動実行するスクリプトの内容を記入したのち、
[名前を付けて保存]→ファイル名:.Rprofile,ファイルの種類:すべてのファイル
で簡単にできますが、しかし初心者にやさしくないことこのうえない。

ということで、R上で実行すると、
指定フォルダ内の.Rないし.rで終わる名前のファイルを、自動で実行するための.Rprofileをつくる
というスクリプトを作ってみました。

使い方は簡単。
まずこのページ上部のコードを実行します。
いつもと違い今回のautoIncludeってのは、関数の定義が書いてあるわけではなく、単なるスクリプトです。
これを実行すると、Rにおけるユーザのホームディレクトリに.Rprofileという名前のファイルが作られます。
ホームディレクトリは、autoInclude実行時にコンソールに表示されます。
(普通、Rの本体が入っているディレクトリか、あるいはマイドキュメントになっているようです。)

.Rprofileファイルさえできてしまえば、もうautoIncludeは二度と実行する必要はありません。
このスクリプトは単に.Rprofileファイルを作るためのもので、
「毎回、特定のフォルダ内の関数をsource()うんぬん」
ってのはこのプロファイルファイルがやってくれます。
というのもRは起動時に、ホームディレクトリに.Rprofileファイルが存在した場合、その中身を実行するという仕様になっているのです。

で、今回生成された.Rprofileファイルには、最初から、特定のフォルダ内の関数を読み込むためのコードが書いてあります。
よってあとすることは、
.Rprofileファイル内で、自動読み込みしたいフォルダを指定する
だけです。
これは.Rprofileファイルの7行目のautoInclude.rdirという変数の中身を書き換えることで、実行できます。
デフォルトでは"C:/"になっていますので、これを好きなディレクトリに変えてください。
これで毎回のR起動時に、指定フォルダ内に存在するスクリプトファイルがすべて実行されます。

まとめると、やることは
(1) autoInclude.Rを実行する(ページ上部のコードをRにコピペ)
(2) 作られた.Rprofileをエディタで開き、7行目を好きなディレクトリに書き換えて上書き保存
です。
あとは
(3) そのフォルダに関数の定義を書いたRファイルを入れておけば、起動時に毎回勝手に読み込まれる
というわけです。
.RprofileはデフォルトでRのユーザホームディレクトリに作成されますので、動かさないでくださいね。

注意事項は、
ホームディレクトリにすでに.Rprofileファイルがあると、問答無用で上書きされます。
(自分で過去に.Rprofileを作った記憶があるかたは、一時退避して、あとからエディタで内容をつけ加える等してください。)
ってのと、
たぶん日本語の入ったディレクトリパスは使えません。
(これはこのスクリプトの問題というより、Rの鬼門ですね。)
ってコト。
これらの点はご注意ください。
てか自分で.Rprofileをつくれる人は、こんなスクリプト使わないでしょ?


以下、実行例です。

> source("autoInclude.R") # まずはautoIncludeを実行

File named <.Rprofile> was successfully created.
        C:/Documents and Settings/MOCHI/My Documents/.Rprofile

In this file, please rewrite the value in the 7th row to where you want to put the R functions.
The R script files in that directory will always be included when you start R.

できたファイルの7行目を、好きなディレクトリに変更します。
分かりやすいところがよいでしょう。








すると次回起動時から、以下のようなメッセージが出て、指定ディレクトリ内のRファイルがsource()されます。

R version 2.8.1 (2008-12-22)
Copyright (C) 2008 The R Foundation for Statistical Computing
ISBN 3-900051-07-0

Rはフリーソフトウェアであり、「完全に無保証」です。
 一定の条件に従えば、自由にこれを再配布することができます。
配布条件の詳細に関しては、'license()'あるいは'licence()'と入力してください。

Rは多くの貢献者による共同プロジェクトです。
 詳しくは'contributors()'と入力してください。
また、RやRのパッケージを出版物で引用する際の形式については
 'citation()'と入力してください。
 
 'demo()'と入力すればデモをみることができます。
 'help()'とすればオンラインヘルプが出ます。
 'help.start()'でHTMLブラウザによるヘルプがみられます。
 'q()'と入力すればRを終了します。

These R script files were successfully included.                   #####コレ#####
[1] "cc.R"     "clp.R"    "getXls.R" "hanoi.R"  "HHsim.R"  "sl.R"  #####コレ#####


■更新履歴■

09.05.27 ver.1.00
公開