Uwe Ligges ha scritto un articolo "R Help Desk" su questo argomento in R News (2006, 6(4):43-45).
Una volta identificata la funzione C effettiva utilizzata, utilizzare gli strumenti di ricerca del file system per cercare il nome della funzione nella relativa cartella di origine; in questo caso ./src/main/
, ad es. su 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}},
indicando che unique.c
è il posto giusto da cercare in questo caso.
In base alle mie conoscenze, non c'è modo (a parte invocare una chiamata di sistema al terminale) per identificare da R quale file di origine contiene il codice C per una determinata funzione in R - beh, non senza riscrivere grep
o find
o simile usando il codice R :-)
fonte
2012-11-07 22:36:40
+1 per motivi per cui ho abbandonato Windows. '../ R-2.15.2/src> grep do_matchcall */*' restituisce 'main/unique.c' (tra gli altri). –