![]() |
1
2
S3方法调度系统
对于S3类,可以使用
“不可见的函数带有星号”意味着该函数不会从其包的命名空间导出。您仍然可以通过
S4方法调度系统S4系统是一种较新的方法调度系统,是S3系统的替代方案。以下是S4函数的示例:
输出已经提供了很多信息。
例如,还有一些方法的每个方法都具有更复杂的签名
要查看其中一个方法的源代码,必须提供完整的签名,例如。
提供部分签名是不够的
调用未导出函数的函数
假使
调用已编译代码的函数
请注意,“compiled”不是指由创建的字节编译的R代码
编译器
包裹这个
调用的函数
对上述某些函数的调用可能使用对象而不是字符串来引用已编译的函数。在这些情况下,对象属于类
包中已编译的代码
如果要查看包中的编译代码,则需要下载/解压缩包源代码。安装的二进制文件不足。包的源代码可从最初安装包的CRAN(或CRAN兼容)存储库中获得。这个
这将下载Matrix包的源版本,并保存相应的
或者,如果包开发是公开托管的(例如通过 GitHub , R-Forge 或 RForge.net ),您可能可以在线浏览源代码。 在基本包中编译的代码
某些软件包被视为“基础”软件包。这些软件包随R一起发货,其版本锁定为R版本。示例包括
R解释器中内置的编译代码如果你想查看R解释器内置的代码,你需要下载/解压R源代码;或者您可以通过R在线查看来源 Subversion repository 或 Winston Chang's github mirror .
Uwe Ligges的
R news article (PDF)
(第43页)是如何查看的源代码的一个很好的通用参考
|
![]() |
2
1
除了这个问题的其他答案及其重复项之外,这里还有一个很好的方法来获取包函数的源代码,而无需知道它在哪个包中。
例如,如果我们想要的来源
到 查看/编辑 在弹出窗口中显示:
请注意
到 重定向到单独的文件 (这样你就可以在你最喜欢的IDE/编辑器/用grep/等处理它中调出代码):
|
![]() |
3
0
对于非基函数,R基包括一个称为
将生成以下内容:
如果您在脚本中工作,并且希望函数代码作为字符向量,则可以获得它。
会让你:
我为什么要做这样的事?我正在创建一个自定义S3对象(
缩进并显示与关联的代码
编辑2020-12-31
一种不那么迂回的方式
|
![]() |
MaPo · Linux,设置锁定ICMP_过滤器选项 3 月前 |
![]() |
Doohyeon Won · 内联函数上的奇怪现象?[关闭] 4 月前 |
![]() |
Bobby · 复合字面值总是左值吗? 4 月前 |
![]() |
9-Pin · C: 嵌套结构的堆栈内存分配 4 月前 |