3

Martin Morgan の参照クラスに関するメモを読んでいます。スライド 7 で、彼は以前に汎用の using として設定せずに関数setMethodを定義するために使用しています。showsetGeneric

なぜこれが許可されているのですか?を含むすべての参照クラスに対してジェネリックとして宣言されているメソッドのリストはありshowますか?

4

2 に答える 2

5

showは既にジェネリック関数です:

> isGeneric("show")
[1] TRUE

親環境のジェネリックのリストは、次を呼び出すことで取得できますgetGenerics

> getGenerics()
An object of class "ObjectsWithPackage":

Object:  "-"    "!="   "["    "*"    "/"    "&"    "%/%"  "%%"   "^"    "+"   
Package: "base" "base" "base" "base" "base" "base" "base" "base" "base" "base"

Object:  "<"    "<="   "=="   ">"    ">="   "|"    "$"    "$<-"  "abs"  "acos"
Package: "base" "base" "base" "base" "base" "base" "base" "base" "base" "base"

Object:  "acosh" "addNextMethod" "Arith" "asin" "asinh" "atan" "atanh" "body<-"
Package: "base"  "methods"       "base"  "base" "base"  "base" "base"  "base"  

Object:  "cbind2"  "ceiling" "coerce"  "coerce<-" "Compare" "Complex" "cos" 
Package: "methods" "base"    "methods" "methods"  "methods" "base"    "base"

Object:  "cosh" "cummax" "cummin" "cumprod" "cumsum" "digamma" "exp"  "expm1"
Package: "base" "base"   "base"   "base"    "base"   "base"    "base" "base" 

Object:  "floor" "gamma" "initialize" "kronecker" "lgamma" "loadMethod" "log" 
Package: "base"  "base"  "methods"    "base"      "base"   "methods"    "base"

Object:  "log10" "log1p" "log2" "Logic" "Math" "Math2"   "Ops"  "rbind2" 
Package: "base"  "base"  "base" "base"  "base" "methods" "base" "methods"

Object:  "round" "show"    "sign" "signif" "sin"  "sinh" "slotsFromS3" "sqrt"
Package: "base"  "methods" "base" "base"   "base" "base" "methods"     "base"

Object:  "Summary" "tan"  "tanh" "trigamma" "trunc"
Package: "base"    "base" "base" "base"     "base" 
于 2013-12-17T05:26:46.560 に答える
1

を見る?showと、 へのデフォルトのディスパッチがあることがわかりますshowDefault。利用可能と思われる他の方法のリストを見た覚えがあるようですが、現時点ではそれらへのリンクが見つからないため、2番目の質問についてはわかりません.

于 2013-12-17T05:27:40.300 に答える