Rを使った大学院講義に関するコメントを見た。関数の定義(実装)は何かを調べた受講生がいるとのことである。気になって自分も調べてみたところrdbファイルに辿り着いたのでメモ。
紹介された記事によると、
- 1
methods(func)
とすれば汎用関数のディスパッチ先を表示できる - 2
- *のついていない関数は
print
する - *のついた関数は実装が隠されている(??)とのことで、
getS3method
あるいはgetAnywhere
関数を利用する
- *のついていない関数は
とすれば実装を見られるとのことである。
ここで残る問題は、実装がどこのファイルにあるか、である。Rのディレクトリ内をgrepしても見当たらなかったが、githubレポジトリ内を検索すると見つかった。手元の同名のディレクトリには.rdbファイルと.rdxファイルしかなく、これが怪しいということで調べたところ[R] opening RDB files、lazyLoad function | R Documentationという記事を発見した。要はrdbファイルは遅延ローディングを可能にするバイナリファイルで、rdxファイルはrdbファイルのためのインデックスらしい。
- これで少し安心してRを使える気がする。
- githubのレポジトリを手元にcloneしておくのが良さそう。
- R Documentation and manuals | R Documentationは便利、覚えた。