【发布时间】:2016-09-13 13:00:05
【问题描述】:
我已将一个对象分类为 NewClass,我如何在对象上使用函数,比如 plot,就好像它是已知类的,比如 hist?
【问题讨论】:
我已将一个对象分类为 NewClass,我如何在对象上使用函数,比如 plot,就好像它是已知类的,比如 hist?
【问题讨论】:
简单:只需提供所需的方法:
plot.NewClass = function(x, y, ...) { … }
在最简单的情况下,您可以在实现中分派到另一个 plot 方法。
如果您的NewClass 对象实际上是伪装的histogram 对象,您可以使用以下技巧:
plot.NewClass = function (x) {
# “unmask” histogram object
class(x) = 'histogram'
plot(x)
}
【讨论】:
plot.NewClass = graphics:::plot.histogram — 请注意三个冒号:plot.histogram 不是从 @987654328 导出的@ 所以你需要说服 R 访问命名空间中的隐藏对象。这是通过:::完成的。