任意のRオブジェクトが与えられた場合、オブジェクトに関連付けられたすべてのメソッドを取得するにはどうすればよいですか?オブジェクトメソッドの取得R
答えて
最も近いと思われるのは、methods
(S3オブジェクト/機能の場合、List all available methods for an S3 generic function, or all methods for a class.
)またはshowMethods
(S4の場合)です。
例えば:
> A <- matrix(runif(10))
> B <- methods(class=class(A))
> B
[1] anyDuplicated.matrix as.data.frame.matrix as.raster.matrix*
[4] boxplot.matrix determinant.matrix duplicated.matrix
[7] edit.matrix* head.matrix isSymmetric.matrix
[10] relist.matrix* subset.matrix summary.matrix
[13] tail.matrix unique.matrix
Non-visible functions are asterisked
> attr(B,'info')
visible from
anyDuplicated.matrix TRUE package:base
as.data.frame.matrix TRUE package:base
as.raster.matrix FALSE registered S3method
boxplot.matrix TRUE package:graphics
determinant.matrix TRUE package:base
duplicated.matrix TRUE package:base
edit.matrix FALSE registered S3method
head.matrix TRUE package:utils
isSymmetric.matrix TRUE package:base
relist.matrix FALSE registered S3method
subset.matrix TRUE package:base
summary.matrix TRUE package:base
tail.matrix TRUE package:utils
unique.matrix TRUE package:base
や機能について:
> methods(summary)
[1] summary.aov summary.aovlist summary.aspell*
[4] summary.connection summary.data.frame summary.Date
[7] summary.default summary.ecdf* summary.factor
[10] summary.glm summary.infl summary.lm
[13] summary.loess* summary.manova summary.matrix
[16] summary.mlm summary.nls* summary.packageStatus*
[19] summary.PDF_Dictionary* summary.PDF_Stream* summary.POSIXct
[22] summary.POSIXlt summary.ppr* summary.prcomp*
[25] summary.princomp* summary.srcfile summary.srcref
[28] summary.stepfun summary.stl* summary.table
[31] summary.tukeysmooth*
Non-visible functions are asterisked
?Methods
も便利な読み取りを証明することがあります。
Rオブジェクトのクラスはclass
で復元されます。オブジェクトには、典型的なRの言い回しに関連するメソッドはありません。オブジェクトのクラスによって、どのような関数がメソッドに適用されるかが決まります。特定のクラスに関連するメソッドを持つ関数を判別するには、使用可能なすべての関数をテストして、クラス固有のメソッドがあるかどうかを確認する必要があります。それでも汎用関数でも、ほとんどの場合、「デフォルト」メソッドを使用しようとします。
一般的なS3関数に関連付けられたいくつかのメソッドは、methods
で表示されます。 S4関数のメソッドは、showMethods
で復元されます。だから、ほとんどの人が "オブジェクト"と呼んでいるものは、あなたの質問は意味をなさないが、一般的な用語であるオブジェクト(技術的に公正である)の下に関数を含めると、私は答えた。
showMethods(classes="data.frame")
methods(class="data.frame")
は、その後彼らのR名が
?groupGeneric
methods("Math") # These are "add-on" methods to the primitive Math functions
[1] Math.data.frame Math.Date Math.dates* Math.difftime Math.factor
[6] Math.mChoice Math.polynomial* Math.POSIXt Math.ratetable* Math.Surv*
[11] Math.times*
Non-visible functions are asterisked
?"+"
methods("Ops") # The binary operators such as "+", "-", "/"
[1] Ops.data.frame Ops.Date Ops.dates* Ops.difftime Ops.factor
[6] Ops.findFn Ops.mChoice Ops.numeric_version Ops.ordered Ops.polynomial*
[11] Ops.POSIXt Ops.raster* Ops.ratetable* Ops.Surv* Ops.times*
[16] Ops.ts* Ops.unit* Ops.yearmon* Ops.yearqtr* Ops.zoo*
Non-visible functions are asterisked
その場合でも、あなたが本当に数学のメンバーが表示されていないか、「groupGeneric」ですが、「暗黙の」と呼ばれるかもしれないメソッドのグループがありますOpsファミリがありますが、あなたは?groupGenericのヘルプページでそれらを見たでしょう。 Ops.numericは表示されません。
.Primitive("+")
# function (e1, e2) .Primitive("+")
これは、間違ったクラス引数が指定されているとエラーになります。
パッケージによっては、メソッドではなく、特定のクラスで使用することを意図した関数を定義するものがあります。例えば、library(igraph)はradius(_)
という関数を定義しています。これはigraph
クラスのオブジェクトでの使用を意図しています。このような関数はメソッドではないので、methods(_)
とshowMethods(_)
はそれらを公開しません。
このような場合、lsf.str(_)
は非常に役に立ちます。
lsf.str("package:igraph")
ライン含む:例えばRで
radius : function (graph, mode = c("all", "out", "in", "total"))
- 1. javascriptオブジェクトメソッド名を取得するには?
- 2. 内部オブジェクトメソッドからスレッド名を取得する
- 3. オブジェクトメソッド:イメージャ
- 4. クラス内のオブジェクトメソッド
- 5. Express-Sessionのオブジェクトメソッド
- 6. PHPのCOMオブジェクトメソッド
- 7. Javascriptオブジェクトメソッドの問題
- 8. javascript関数オブジェクトメソッド
- 9. Easymockコールautowiredオブジェクトメソッド
- 10. クラス、インスタンス/オブジェクトメソッド
- 11. JavaScriptオブジェクトメソッドreturn文
- 12. Rのコマンドラインウィンドウのヘルプを取得する
- 13. C++とRのインタフェース、出力の取得
- 14. は、エラーの取得「機能で 『igraph_write_graph_graphml』:」R
- 15. 行列の要素をRに取得
- 16. プロットの境界を取得するR
- 17. Rスクリプトのファイルパスを取得する
- 18. Rデータフレームの行番号を取得
- 19. テキストファイルの行数を取得するR
- 20. PythonのJavascript形式のオブジェクトメソッド?
- 21. Javascriptのオブジェクトメソッドとバインディング関数
- 22. オブジェクトメソッドとオブジェクトデータの分離
- 23. カラムからの前の値の取得とRの差分の取得
- 24. UbuntuでRでアンチエイリアスプロットを取得
- 25. サブセットからインデックスを取得R
- 26. PCAからクラスタを取得するr
- 27. オブジェクトメソッドを変数に渡す
- 28. オブジェクトメソッドに配列を渡す
- 29. Pythonマルチプロセッシング呼び出しオブジェクトメソッド
- 30. ループ内のビューでのオブジェクトメソッドのアクセスphp7
を、方法が機能しないオブジェクトに関連付けられています。より早くRのOOシステムが理にかなって始めるとすぐに分かります。 – hadley
"find methods r"をGoogleで検索した場合、最初の2つのヒットが適切なヘルプページファイルに移動します。 :P –
@hadleyしかし、すべての関数オブジェクトではありませんか? –