隠された関数のコードを読む

#説明が雑!

R では、関数名だけをタイプするとそのコードが表示される。例えば apply 。

オブジェクト指向で多態になっているものについては、UseMethod を呼び出す総称的関数 (generic function) が表示されるだけだ。こういう時は、methods で一覧を取得できる。

> apply 
# コードが表示される。省略。
> image # 多態
function (x, ...) 
UseMethod("image") # UseMethod しているので、これは総称的関数
<bytecode: 0x100fa8fc8>
<environment: namespace:graphics>
> methods(image)
[1] image.default # たまたま1つしかないけど...
> image.default
# コード本体が表示される。省略

パッケージによっては、総称的関数だけを公開 (export) していて、本体にアクセスできないことがある。その時は、::: 演算子を使って名前空間を明示すればよい。

> methods(t.test)
[1] t.test.default* t.test.formula*

   Non-visible functions are asterisked
> t.test.default
 エラー:  オブジェクト 't.test.default' がありません 
> stats:::t.test.default
# コードが表示される