1
は、次のS4クラスを考えてみましょう:クラススロット対署名の不一致を初期化
setClass('Foo', representation(model='data.frame'))
setMethod('initialize', 'Foo',
function(.Object, a, b) {
[email protected] <- 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
の署名は、クラスにあるスロットと一致する必要があります。それ以外の場合は、発生するのを待っている問題です。私が間違っている?