VenablesとRipleyによって書かれた本「StatisticsandComputing」には、一般的なグループ関数Mathのクラス「polynomial」のオブジェクトでメソッド関数を定義する例があります。数学は、abs、acos、acoshなどのいくつかのコンポーネント関数を含むグループ関数です...
以下は、グループジェネリック関数Mathのメソッド関数を定義するために本で言及されているコードです(コードはS4クラス(新しいスタイルのR / Sクラス)用であることに注意してください)。
setMethod("Math", "polynomial",
function(x) {
switch(.Generic, ceiling = , floor = ,
trunc = polynomial(callGeneric(x@coef), rat = x@rat),
stop(paste(.Generic, "not allowed on polynomials"))
)}
)
setMethod()を使用して、クラス "polynomial"のオブジェクトで呼び出されたときに、ジェネリック関数Mathのメソッド関数を定義していることを理解しています。ここでどのスイッチが機能するか説明していただけますか?スイッチのRヘルプを読みましたが、それでも以下の部分を理解するのに苦労しています。
switch(.Generic, ceiling = , floor = ,
trunc = polynomial(callGeneric(x@coef), rat = x@rat),
stop(paste(.Generic, "not allowed on polynomials"))
)}
上記の多項式関数は、クラス「polynomial」のオブジェクトを作成するためのコンストラクター関数であることに注意してください。