自作関数の使い方

わたしが自作した関数は、
source("http://noucobi.com/Rsource/")
というディレクトリ内においてあります。

使用方法

使用方法は
(1) http://noucobi.com/Rsource/関数名.Rというファイルを保存してsource()
(2) R上でsource("http://noucobi.com/Rsource/関数名.R")を実行して、webから直接読み込み
のいずれかです。

(1) の方法の場合
ワーキングディレクトリにRファイルを保存したなら、source("関数名.R")で読み込めます。
それ以外の場所(たとえばC:/Rsource/)に保存したなら、source("C:/Rsource/関数名.R")のように絶対パスで指定してください。
このようにローカルディスクに保存しておけば、インターネットに接続しなくてもこれらの関数が使えます。
ただし関数ファイルのアップデートは定期的に確認するようにしてください。

(2) の方法の場合
インターネットに接続した状態で上記(2)のコードを実行すれば、関数が読み込まれます。
もちろん毎回ネットに接続する必要があるわけですが、常に公開されている最新バージョンを使用できます。
大学などのネットワークで、Rからインターネット上のファイルにアクセスできない場合、Rのプロキシ設定を参照ください。

自動読み込み

「毎回読み込むのが面倒だ」という場合は、Rの起動時に、関数読み込みのためのコードを自動実行するように設定できます。
たとえば、毎回自動的にweb上からcc()を読み込みたい場合
メモ帳などのエディタを開き、読み込みのためのコード
source("http://noucobi.com/Rsource/cc.R")
を書き込みます。
これを[名前を付けて保存]しますが、このとき
ファイル名:.Rprofile
ファイルの種類:すべてのファイル
としてください。
→例:.Rprofile
[ファイルの種類]を[テキスト文書]ではなく[すべてのファイル]にしないと、".txt"という拡張子が付いてしまうので気をつけてください。
詳しく検証してませんが、Windowsでは、いったん拡張子付きのファイル名として保存したものを、エクスプローラで「ドット"."で始まる拡張子なし」のファイル名にしようとすると、怒られてしまうようです。

このファイルをRの起動ディレクトリに置いておくと、毎回の起動時にこのなかに書いたスクリプトが自動実行されます。
起動ディレクトリとは、Rが立ち上がったときにいるワーキングディレクトリのことです。
起動ディレクトリは、Rのショートカットを[右クリック]→[プロファイル]から[作業フォルダ]で確認できます。
あるいは起動直後に、getwd()を実行しても調べられます。

ヘルプについて

パッケージ化されていない自作関数は、ヘルプ等のドキュメンテーションをつけることができず、help(関数名)としてもヘルプをみることができません。
そこでわたしの自作した関数には、ヘルプの代わりにコメントをつけています。
関数につけたコメントは、関数をsource()した上でcomment(関数名)とするとみることができます。

> source("http://noucobi.com/Rsource/clp.R")
> comment(clp)
 [1] "clp - Make a vector/matrix from the current clipboard."
 [2] ""
 [3] "SYNOPSIS"
 [4] "    x <- clp()"
 [5] "INPUT"
 [6] "    header   : logical. TRUE to capture of a matrix which has a header row."
 [7] "    simplify : logical. FALSE if you just want a data.frame constructed from the clipboard."
 [8] "OUTPUT"
 [9] "    x : a vector/matrix (or data.frame if simplify==FALSE)."
[10] ""
[11] "See http://noucobi.com/r/clp.html for detailed instruction in Japanese."
[12] "ver.1.01, written by MOCHI, 2009."

行数やら引用符やらが出て見づらいですが、まあないよりはだいぶマシということで。
そのうちドキュメンテーションもちゃんと揃えたうえで、パッケージ化したいものです…