假设,一个人忘记在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的新手(例如我),因此很可能会忘记这样做。如果脚本这么多行,这很容易让人感到厌烦。
预先感谢!
答案 0 :(得分:1)
有一个函数可以完全做到这一点;它称为setValidity
。只需使用您的班级名称和所需的有效性检查功能进行调用即可。