从R中的另一个包创建泛型的新方法

时间:2014-07-18 17:44:04

标签: r class generics methods package

在R中,在另一个包中包含泛型的新方法的最简单方法是什么?例如,' nlme' package有一个名为' getData"用于课堂对象的方法' lme'并且' nls'。我只想为课程对象添加一个方法' lm'在我自己的包中。

1 个答案:

答案 0 :(得分:2)

如果要向getData中的nlme添加现有S3通用的另一种方法,只需创建一个名为getData.classname的函数即可。例如,假设我有一个特殊的对象" foo"

z <- structure(5, class="foo")

我只是定义

getData.foo<-function(x, ...) {
    unclass(x)+5
}

然后我打电话

library(nlme)
getData(z)
#[1] 10

我的自定义函数被调用。这一切都与正确命名您的功能有关。那就是它。