将参数附加到 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 名称和所需的有效性检查函数来调用它即可。
假设,一个人忘记在 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 名称和所需的有效性检查函数来调用它即可。