私はここの初心者です。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
しかし、割り当てが失敗したことをテストできるようにしたいと思います。これを行う良い方法は何ですか?ありがとう。