【发布时间】:2014-05-24 01:24:42
【问题描述】:
有没有人整理/找到一个好的方法来列出给定对象可用的所有S3方法?内置的methods() 函数将为指定的类或指定的泛型函数提供所有可用的方法,但不为对象提供。
我想到的例子是一个glm 对象,它属于(次要?)类"glm",但也继承自"lm"
g <- glm(y~x,data=data.frame(x=1:10,y=1:10))
class(g)
## [1] "glm" "lm"
“lm”类有 35 种方法,“glm”有 22 种方法。我对结合以下结果的答案感兴趣
lapply(class(g),function(x) methods(class=x))
以一种明智的方式,以便我可以立即看到(例如)add1 有一个特定于glm 的方法,但是alias 的方法是从lm 类继承的。
有人有巧妙的方法来做到这一点,还是已经存在?
PS Steve Walker 的S3-S4-reference class glossary 表明这对引用类自动起作用,我们必须使用对象来获取方法 (x$getRefClass()$methods())。
【问题讨论】:
-
询问 S3 类的方法有点误导,因为在 S3 中,函数有方法,而不是类。