2016-11-07 5 views
0

"subject"というクラスのメソッドをGenericメソッドの "summary"を使って作成しようとしています。しかし、エラーメッセージが表示されます。私が間違ってやっていることとそれを修正する方法を理解するのを助けてくれますか?ありがとうございました。RのクラスのsetMethod

 setGeneric("summary") 

     setMethod("summary", 
     c(x = "subject"), 
     function(x){"This is summary for subject class"}) 

エラーメッセージは以下の通り:私は次のようにジェネリックメソッド「印刷」を使用して、クラス「対象」方法を作成するためのsetMethodを使用している

 Error in match.call(definition, call, expand.dots, envir) : 
     unused argument (x = c("subject", "")) 

 setMethod("print", 
      c(x = "subject"), 
      function(x){ 
       if (length(x$id) > 0){ 
         paste0("Subject ID: ", unique(x$id))} 
       else {"NULL"} 
      }) 

上記コードはエラーなしで実行されます。私は2つの場合の違いを理解できません。

+2

私はここから始めておくことをお勧めします:http://adv-r.had.co.nz/OO-essentials.html –

+0

より具体的な場合は、私は感謝します – im7

答えて

1

xが "object"に置き換えられた場合、コードは機能します。すなわち:

 setMethod("summary", 
    c(object = "subject"), 
    function(object){"This is summary for subject class"}) 

いくつかの関連情報はここにあります: Is 'show' a normal S4 generic function?

助けホープ。

関連する問題