建议增改FAQ32:通常在R Console中直接敲对象名就显示源代码了,但这个“源代码”未必是最底层的源代码,比如直接敲入file.create会显示:
<br />
> file.create<br />
function (..., showWarnings = TRUE)<br />
.Internal(file.create(c(...), showWarnings))<br />
<environment: namespace:base><br />
这种调用.Internal的函数大多是用C或Fortran写的,在已经编译好的R中是无法再继续看源代码的,只能下载R本身的源代码包去找对应的C或Fortran源文件。为了真正找到函数的源代码,你需要准备一个支持搜索文件夹的编辑器,比如Tinn-R。</p>
另外,还有很多不能直接显示最底层源代码的函数是用S3方法写的,看帮助文档的时候会看到一行类似于“## S3 method for class '***':
”的描述,对于这种函数,可以用getS3method()
去查看源代码,比如getS3method('boxplot', 'formula')
。在R News的某一期上有一篇文章专门讲如何查看函数源代码,不过对.Internal这种类型的函数没有详细说如何去源代码中找到相应的代码。