[解決済み] Rの "S3メソッド "とは何ですか?
質問
Rの初心者なので、S3のメソッドやオブジェクトがどのようなものなのかわかりません。オブジェクトシステムにはS3とS4があり、可能であればS4よりもS3を使用することを推奨していることがわかりました。 http://google-styleguide.googlecode.com/svn/trunk/google-r-style.html )*. しかし、S3のメソッド/オブジェクトの正確な定義はわかりません。
更新:2019年現在、GoogleのRスタイルガイドのハイパーリンクは ここに .
どのように解決するのですか?
関連する情報のほとんどは、以下のサイトを見ればわかります。
?S3
または
?UseMethod
といった具合に、一言で言えば
S3とは、メソッドディスパッチのスキームを指します。Rを使ったことがある人ならお気づきでしょうが、Rには
print
,
predict
と
summary
といったメソッドを多くの異なる種類のオブジェクトのために使用することができます。
S3では、これは次のように動作します。
-
目的のオブジェクトのクラスを設定する
興味のあるオブジェクトのクラスを設定する(例:メソッドの呼び出しの戻り値
メソッドの呼び出し
glm
にはクラスglm
) -
を持つメソッドを提供することは、一般的な
の名前 (例
print
のように)、次にドット、そして の後にクラス名 (例.print.glm
) -
この一般的な名前には、何らかの準備が必要です。
この一般的な名前に対して行われた (
print
) を作成する必要があります。 を使用することができます。 既存のメソッド名に合わせるだけなら、これは必要ありません。 は必要ありません(必要な場合は、私が以前参照したヘルプを参照してください を参照してください)。
見る人、特に新しく作ったファンキーなモデルフィッティングパッケージのユーザーにとっては、次のように入力できる方がずっと便利です。
predict(myfit, type="class")
よりも
predict.mykindoffit(myfit, type="class")
.
この他にもかなり多くのことがありますが、これで始めることができるでしょう。オブジェクトの属性(クラス)に基づいてメソッドをディスパッチするこの方法には、かなり多くの欠点があります(C言語の純粋主義者は、おそらくその恐怖で夜も眠れないでしょう)が、多くの状況では、ちゃんと機能します。Rの現在のバージョンでは、より新しい方法(S4と参照クラス)が実装されていますが、ほとんどの人はまだ(唯一)S3を使っています。
関連
-
R言語です。「接続を開くことができません」解決策
-
[解決済み] Inversion of Controlとは?
-
[解決済み] インターフェースと抽象クラスの違いは何ですか?
-
[解決済み] 抽象メソッドと仮想メソッドの違いは何ですか?
-
[解決済み] オブジェクト名の前のシングルアンダーコアとダブルアンダーコアの意味は何ですか?
-
[解決済み] Rの代入演算子"="と"<-"の違いは何ですか?
-
[解決済み] データフレーム内のランダムな行をサンプリングする
-
[解決済み】type()とisinstance()の違いは何ですか?)
-
[解決済み】「インターフェースに合わせたプログラム」とはどういう意味ですか?
-
[解決済み】data.table vs dplyr:一方がうまくできない、またはうまくできないことを行うことができますか?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン