Uwe Ligges は、 R News (2006, 6(4):43-45)でまさにこのトピックに関する「R Help Desk」記事を書きました。
使用されている実際の C 関数を特定したら、ファイルシステム検索ツールを使用して、関連するソース フォルダーで関数名を検索します。この場合./src/main/
、たとえば Linux の場合
$ grep -r -H "do_matchcall" ./src/main/
./src/main/.svn/text-base/names.c.svn-base:{"match.call", do_matchcall, 0, 11, 3, {PP_FUNCALL, PREC_FN, 0}},
./src/main/.svn/text-base/unique.c.svn-base:SEXP attribute_hidden do_matchcall(SEXP call, SEXP op, SEXP args, SEXP env)
./src/main/unique.c:SEXP attribute_hidden do_matchcall(SEXP call, SEXP op, SEXP args, SEXP env)
./src/main/names.c:{"match.call", do_matchcall, 0, 11, 3, {PP_FUNCALL, PREC_FN, 0}},
この場合、そこが注目すべき場所であることを示していunique.c
ます。
私の知る限りでは、(端末へのシステム コールを呼び出す以外に) R 内から、R 内の特定の関数の C コードを含むソース ファイルを特定する方法はありませgrep
んfind
。 Rコード:-)