的pnorm
將R源代碼是:
function (q, mean = 0, sd = 1, lower.tail = TRUE, log.p = FALSE)
.Call(C_pnorm, q, mean, sd, lower.tail, log.p)
所以,從技術上來講,鍵入 「pnorm」 確實告訴你的源代碼。然而,更有用的是:pnorm
的內容用C語言編碼,所以前面的問題view source code in R中的建議只是在外圍是有用的(大部分集中在隱藏在名稱空間中的函數等)。
Uwe Ligges的article in R news(第43頁)是一個很好的一般參考。從該文檔:
當尋找在r源代碼,有時調用 到以下功能中的一個顯示:.C(), .CALL(),.Fortran(),.External(),或.Internal() 和.Primitive()。這些函數調用編譯代碼中的入口點,如共享對象,靜態庫或動態鏈接庫。因此,如果需要對代碼的完整理解是 ,則有必要查看編譯代碼的來源。 ... 如果 調用的R函數是.Primitive()或 .Internal(),則文件'$ R HOME/src/main/names.c'中的第一步是查找 入口點。 。 這在以下示例中針對實現「簡單」R函數 sum()的代碼完成。
(着重號,因爲你問到的精確功能(sum
)被覆蓋在Ligges的文章。)
根據您想如何認真鑽研的代碼,它可能是值得下載和 按照Ligges的建議解包源代碼(例如,然後您可以使用命令行工具 ,如grep
來搜索源代碼)。要進行更加隨意的檢查,您可以通過R Subversion server或Winston Chang's github mirror在線查看 的信息來源(這裏的鏈接專門針對src/nmath/pnorm.c
)。 (猜測看,src/nmath/pnorm.c
正確的地方,需要一些熟悉的R源代碼的結構。)
mean
和sum
在summary.c二者實現。
它從'pnorm'不同的類別。爲R代碼嘗試使用'mean.default',爲C代碼使用https://github.com/wch/r-source/blob/trunk/src/main/summary.c。並閱讀上面鏈接的Uwe Ligges的文章! –