我做了这个(简化的)S4课:
setClass(
Class = "WOW",
representation = representation(
x = 'numeric',
y = 'numeric'
)
)
setGeneric("run", function(.Object, x, y, do)
standardGeneric("run") )
setGeneric("add", function(.Object, x, y, do)
standardGeneric("add") )
setMethod("add", signature("WOW"), function(.Object, x, y ) {
return(x + y)
})
setMethod("run", signature("WOW"), function(.Object, x, y, do) {
if (do == 'ADD') {
print('ADDING')
# --> RUN wow function
}
})
我基本上想让用户调用run
函数并通过两个输入数字(do
和x
告诉它要做什么(通过y
参数) )。因此,如果用户说“ ADD”,则应调用add
函数并将结果返回到run
函数。我知道这可以通过self或在python和java中完成,但是如何在R中完成呢?
我发现调用add(.Object, x, y)
可以正常工作,但是我找不到任何引用说明这是可接受的方式。
(很显然,我可以在一行代码中添加数字,因此我不需要一个函数,但是我的应用程序要复杂得多,需要一个函数来保持整洁) >