考虑以下 S4 类:
setClass('Foo', representation(model='data.frame'))
setMethod('initialize', 'Foo',
function(.Object, a, b) {
.Object@model <- data.frame(a, b)
.Object
})
它可以通过以下方式实例化:
new('Foo', a=1:4, b=4:7)
到现在为止还挺好。但是,当我尝试对 Foo 进行子类化时,出现错误。
setClass('Bar', contains='Foo')
>>> Error in data.frame(a, b) : argument "a" is missing, with no default
就个人而言,我更喜欢使用显式参数来实例化类 Foo 因为代码更...嗯,显式。然而,这似乎是不可能的,不是吗?看起来 的签名initialize
必须与该类具有的插槽匹配,否则这是一个等待发生的问题。我错了吗?