当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


R methods 列出 S3 通用函数或类的方法


R语言 methods 位于 utils 包(package)。

说明

列出 S3 和 S4 通用函数的所有可用方法,或 S3 或 S4 类的所有方法。

用法


   methods(generic.function, class, all.names = FALSE, dropPath = FALSE)
.S3methods(generic.function, class, envir = parent.frame(),
                                    all.names = FALSE, dropPath = FALSE)

## S3 method for class 'MethodsFunction'
format(x, byclass = attr(x, "byclass"), ...)
## S3 method for class 'MethodsFunction'
print(x, byclass = attr(x, "byclass"), ...)

参数

generic.function

泛型函数,或命名泛型函数的字符串。

class

命名类的符号或字符串:仅在未提供 generic.function 时使用。

envir

当泛型函数作为字符串传递时,在其中查找泛型函数的定义的环境。

all.names

a logical指示是否返回所有对象名称。什么时候FALSE默认情况下,名称以“开头”⁠.⁠’被省略。

dropPath

a logical表明如果search()路径,除了.GlobalEnvpackage:base(IE。,baseenv()),在搜索方法定义时应跳过。默认FALSE向后兼容并且通常需要print()ing,带或不带星号;dropPath=TRUE已被硬编码在R4.3.0 并且对于非小型来说速度更快search()路径。

x

通常的结果是methods(..), 一个RS3类的对象"MethodsFunction",请参阅下面的“值”。

byclass

可选的 logical 允许覆盖 "byclass" 属性,确定如何打印结果,请参阅“详细信息”。

...

传入和传出方法的潜在进一步参数;目前未使用。

细节

methods() 查找与 generic.functionclass 参数关联的 S3 和 S4 方法。找到的方法是所有加载的命名空间通过注册提供的方法,请参阅UseMethod;通常,这包括当前 search() 路径上的所有包。 .S3methods() 仅查找 S3 方法,.S4methods() 仅查找 S4 方法。

当使用 generic.function 参数调用时,"byclass" 属性(请参阅详细信息)为 FALSE ,并且 print 方法默认显示 S3 和 S4 方法的签名(全名)。 S3 方法通过将通用函数和类粘贴在一起来打印,并用“.”分隔,如 generic.class 。如果方法定义不是从定义该方法的包命名空间导出的,则 S3 方法名称后跟星号 *。 S4 方法签名打印为 generic,class-method ; S4 允许多次调度,因此签名 generic,A,B-method 中可能有多个类。

当使用 class 参数调用时,"byclass"TRUE ,并且 print 方法默认显示与类 generic 关联的泛型函数的名称。

所有函数的源代码均可用。对于从命名空间导出的 S3 函数,请在命令行中输入方法 generic.class 。对于未从命名空间导出的 S3 函数,请参阅 getAnywheregetS3method 。对于 S4 方法,请参阅 getMethod

除了每种通用方法之外,还提供每种方法的帮助。对于交互式帮助,请使用文档快捷方式 ? 以及通用名称和制表符完成 ?"generic<tab>" 来选择需要帮助的方法。

列出的 S3 函数是那些名称类似于方法的函数,但实际上可能不是方法(代码中会丢弃已知的异常)。

"MethodsFunction" 的对象,具有 "byclass""info" 属性的方法名称的字符向量。 "byclass" 属性是 logical,指示结果是否是通过定义的参数 class 获得的。 "info" 属性是一个包含列的 DataFrame :

通用的

character 泛型名称向量。

可见的

logical(),方法“visible”是给用户的吗?当为 true 时,它通常从定义它的包的命名空间导出,并且包被 attach() 编辑到 search() 路径。

是S4

logical(),当该方法是 S4 方法时为 true。

a factor ,找到该方法的位置或包名称。

注意

最初的 methods 函数由 Martin Maechler 编写。

例子

methods(class = "MethodsFunction") # format and print

require(stats)

methods(summary)
methods(class = "aov")    # S3 class
## The same, with more details and more difficult to read:
print(methods(class = "aov"), byclass=FALSE)
methods("[[")             # uses C-internal dispatching
methods("$")
methods("$<-")            # replacement function
methods("+")              # binary operator
methods("Math")           # group generic
require(graphics)
methods(axis)             # looks like a generic, but is not

mf <- methods(format)     # quite a few; ... the last few :
tail(cbind(meth = format(mf)))

if(require(Matrix, quietly = TRUE)) {
print(methods(class = "Matrix"))  # S4 class
m <- methods(dim)         # S3 and S4 methods
print(m)
print(attr(m, "info"))    # more extensive information

## --> help(showMethods) for related examples
}

参考

Chambers, J. M. (1992) Classes and methods: object-oriented programming in S. Appendix A of Statistical Models in S eds J. M. Chambers and T. J. Hastie, Wadsworth & Brooks/Cole.

也可以看看

S3MethodsclassgetS3method

对于 S4,getMethodshowMethodsIntroductionMethods_Details

相关用法


注:本文由纯净天空筛选整理自R-devel大神的英文原创作品 List Methods for S3 Generic Functions or Classes。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。