Der R-Quellcode von pnorm
lautet:
function (q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
.Call(C_pnorm, q, mean, sd, lower.tail, log.p)
Also, technisch gesehen, die Eingabe von „Pnorm“ tut zeigen Sie den Quellcode. Nützlicher jedoch: Die Eingeweide von pnorm
sind in C codiert, sodass der Hinweis im Quellcode der vorherigen Frage in R nur am Rande nützlich ist (der größte Teil konzentriert sich auf Funktionen, die in Namespaces usw. verborgen sind).
Der Artikel von Uwe Ligges in den R-Nachrichten (S. 43) ist eine gute allgemeine Referenz. Aus diesem Dokument:
Beim Betrachten des R-Quellcodes werden manchmal Aufrufe einer der folgenden Funktionen angezeigt: .C (), .Call (), .Fortran (), .External () oder .Internal () und .Primitive (). Diese Funktionen rufen Einstiegspunkte in kompilierten Code auf, z. B. gemeinsam genutzte Objekte, statische Bibliotheken oder dynamische Linkbibliotheken. Daher ist es notwendig, die Quellen des kompilierten Codes zu untersuchen, wenn ein vollständiges Verständnis des Codes erforderlich ist. ... Der erste Schritt besteht darin, den Einstiegspunkt in der Datei '$ R HOME / src / main / names.c' nachzuschlagen, wenn die aufrufende R-Funktion entweder .Primitive () oder .Internal () ist. Dies geschieht im folgenden Beispiel für den Code, der die 'einfache' R-Funktionssumme () implementiert.
(Hervorhebung hinzugefügt, da die genaue Funktion, nach der Sie gefragt haben ( sum
), in Ligges 'Artikel behandelt wird.)
Je nachdem, wie ernst Sie sich mit dem Code befassen möchten, kann es sich lohnen, den Quellcode herunterzuladen und zu entpacken, wie es Ligges vorschlägt (dann können Sie beispielsweise Befehlszeilentools verwenden, um beispielsweise grep
den Quellcode zu durchsuchen). Für eine ungezwungenere Überprüfung können Sie die Quellen online über den R Subversion-Server oder den Github-Spiegel von Winston Chang anzeigen (Links hier sind speziell zu src/nmath/pnorm.c
). (Um den richtigen Ort zu finden, src/nmath/pnorm.c
muss man sich mit der Struktur des R-Quellcodes vertraut machen.)
mean
und sum
sind beide in summary.c implementiert .
pnorm
. Versuchen Sie esmean.default
mit dem R-Code und github.com/wch/r-source/blob/trunk/src/main/summary.c für den C-Code. Und lesen Sie den oben verlinkten Artikel von Uwe Ligges!