我是这里的新手。我正在尝试使用 S4 类。在我的一些设置方法中,我想取一个输入值并测试它是否有效。如果它是有效的,我想分配它。如果它无效,我想生成一个可以测试的警告。这是一个简单的例子:
setClass("foo", representation(ind = "numeric"))
setGeneric(name="setInd<-",def=function(object,value){standardGeneric("setInd<-")})
setReplaceMethod(f="setInd",signature="foo",
def=function(object,value){
if(is.numeric(value)){
object@ind<-value;}
else{
warning("Foobar")
}
return(object)}
)
当我尝试分配一个字符时,这会生成一条警告消息:
> thisFoo<-new("foo", ind = 2)
> thisFoo
An object of class "foo"
Slot "ind":
[1] 2
> setInd(thisFoo)<-"A"
Warning message:
In `setInd<-`(`*tmp*`, value = "A") : Foobar
> thisFoo
An object of class "foo"
Slot "ind":
[1] 2
但我希望能够测试分配失败。这样做的好方法是什么?谢谢。