我想继承一个 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
它的工作,但我真的必须定义一个通用函数,尽管它只会与这个对象一起使用吗?注释掉的部分有效,但是没有检查是否使用正确的参数调用函数。这样做的正确方法是什么?提前致谢。