的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”确实会显示源代码。然而,更有用的是:intentspnorm
是用 C 编码的,因此在上一个问题中查看 R 中的源代码中的建议仅在外围有用(其中大部分集中在隐藏在命名空间等中的函数上)。
Uwe Ligges在 R 新闻中的文章 Accessing the Sources (p. 43) 是一个很好的通用参考。从该文件中:
查看 R 源代码时,有时会显示对以下函数之一的调用:.C()
、
.Call()
、.Fortran()
、.External()
或.Internal()
和.Primitive()
。这些函数调用编译代码中的入口点,例如共享对象、静态库或动态链接库。因此,如果需要完全理解代码,则有必要查看编译代码的来源。... 第一步是在文件“$R HOME/src/main/names.c”中查找入口点,如果调用 R 函数是.Primitive()
或
.Internal()
。这是在以下示例中为实现“简单”R 函数的代码完成的
sum()
。
(之所以强调是因为您询问的 ( sum
) 的精确函数已在 Ligges 的文章中介绍过。)
根据您对代码挖掘的认真程度,可能值得按照 Ligges 的建议下载和解压缩源代码(例如,您可以使用命令行工具grep
来搜索源代码)。对于更随意的检查,您可以通过 R Subversion 服务器或Winston Chang 的 github 镜像在线查看源代码(此处的链接专门指向src/nmath/pnorm.c
)。(猜测正确的位置src/nmath/pnorm.c
,需要熟悉 R 源代码的结构。)
mean
并且sum
都在summary.c中实现。