的R源代码pnorm
为:
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编码的,因此R中以前的问题视图源代码中的建议仅对外围有用(大部分集中于隐藏在名称空间中的函数等)。
Uwe Ligges在R news(p。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服务器或Winston Chang的github镜像在线查看源(此处的链接专门指向src/nmath/pnorm.c
)。(在正确的位置找到了,src/nmath/pnorm.c
这使您对R源代码的结构有所了解。)
mean
并且sum
都在summary.c中实现。
pnorm
。尝试mean.default
使用R代码,并在github.com/wch/r-source/blob/trunk/src/main/summary.c中获得C代码。并阅读上面链接的Uwe Ligges的文章!