Kod źródłowy R programu pnorm
to:
function (q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
.Call(C_pnorm, q, mean, sd, lower.tail, log.p)
Tak, technicznie rzecz biorąc, wpisując „pnorm” ma pokazać kod źródłowy. Jednak bardziej użyteczne: wnętrzności pnorm
są kodowane w C, więc rada z poprzedniego pytania, aby zobaczyć kod źródłowy w R, jest przydatna tylko peryferyjnie (większość z nich koncentruje się na funkcjach ukrytych w przestrzeniach nazw itp.).
Artykuł Uwe Liggesa w R news (s. 43) jest dobrym odniesieniem ogólnym. Z tego dokumentu:
Podczas przeglądania kodu źródłowego R czasami pojawiają się wywołania jednej z następujących funkcji: .C (), .Call (), .Fortran (), .External () lub .Internal () i .Primitive (). Te funkcje wywołują punkty wejścia w skompilowanym kodzie, takim jak obiekty współużytkowane, biblioteki statyczne lub biblioteki dołączane dynamicznie. Dlatego konieczne jest zajrzenie do źródeł skompilowanego kodu, jeśli wymagane jest pełne zrozumienie kodu. ... Pierwszym krokiem jest wyszukanie punktu wejścia w pliku „$ R HOME / src / main / names.c”, jeśli wywołująca funkcję R to .Primitive () lub .Internal (). Odbywa się to w poniższym przykładzie dla kodu implementującego „prostą” funkcję R sum ().
(Podkreślenie dodane, ponieważ dokładna funkcja, o którą pytałeś ( sum
), jest omówiona w artykule Ligges.)
W zależności od tego, jak poważnie chcesz zagłębić się w kod, warto pobrać i rozpakować kod źródłowy, jak sugeruje Ligges (na przykład możesz użyć narzędzi wiersza poleceń, takich jak grep
przeszukiwanie kodu źródłowego). Aby uzyskać bardziej swobodną inspekcję, możesz przeglądać źródła online za pośrednictwem serwera R Subversion lub serwera lustrzanego github Winston Chang (linki tutaj prowadzą do src/nmath/pnorm.c
). (Odgadnięcie właściwego miejsca src/nmath/pnorm.c
, wymaga pewnej znajomości struktury kodu źródłowego R.)
mean
i sum
oba są zaimplementowane w Summary . c.
pnorm
. Spróbuj znaleźćmean.default
kod R, a github.com/wch/r-source/blob/trunk/src/main/summary.c kod C. I przeczytaj artykuł Uwe Ligges, do którego link znajduje się powyżej!