将参数附加到s4类

时间:2019-04-13 05:49:58

标签: r s4

假设,一个人忘记在s4类定义中设置validity,那么在不重写整个类的情况下如何“附加”此参数。

插图:

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的新手(例如我),因此很可能会忘记这样做。如果脚本这么多行,这很容易让人感到厌烦。 预先感谢!

1 个答案:

答案 0 :(得分:1)

有一个函数可以完全做到这一点;它称为setValidity。只需使用您的班级名称和所需的有效性检查功能进行调用即可。