将参数附加到 s4 Class

Append arguments to an s4 Class

假设,一个人忘记在 s4 class 定义中设置 validity,一个 "append" 这个参数怎么可能不重写整个 class.

插图:

setClass("test",slots = c(Taken="numeric",Data="data.frame"))
x<-new("test",Taken=123,Data=data.frame(GPA=0.02,Score=0.01))

现在,假设我想检查有效性:

validity.test<-function(object){
  if(!all(sapply(object@Data,is.numeric))){
    print("Data must be all numeric")

  } else print(TRUE)

}

我可以打电话 validity.test(x)

但是,如何在不重写test的情况下将其设置为test?! 我们正在假设某人是 s4 的新手(比如我),因此很可能会忘记这样做。如果脚本行数太多,这很容易让人厌烦。 提前致谢!

有一个函数可以做到这一点;它被称为setValidity。只需使用您的 class 名称和所需的有效性检查函数来调用它即可。