S4 クラスをサブクラス化し、そのサブクラスに特別なメソッドを追加したいと考えています。メソッドはサブクラスに対してのみ機能するはずです。アプリケーション内の他のクラスでは意味がありません。
setClass("MySpecies", contains="Species", ##Species is an S4 class
representation(x="numeric"))
setMethod("initialize", "MySpecies", function(.Object, x, ...){
.Object@x <- x
args <- list(...)
for(i in seq_len(length(args))){
attr(.Object, names(args)[i]) <- args[[i]]
}
.Object
})
##CalcMatrix <- function(.Object, y){
## x <- .Object@x
## matrix(x, x*2, y*3)
##}
setGeneric("CalcMatrix", function(object, y){standardGeneric("CalcMatrix")})
setMethod("CalcMatrix", "MySpecies",function(object, y){
x <- object@x
matrix(x, x*2, y*3)
})
それはsetGeneric
機能しますが、このオブジェクトでのみ使用されますが、本当にジェネリック関数を定義する必要がありますか? コメントアウトされた部分は機能しますが、関数が正しい引数で呼び出されているかどうかはチェックされません。これを行う正しい方法は何ですか?前もって感謝します。