問題タブ [r-s4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
oop - S1およびS2クラスとは何ですか?
RにはS3、S4があり、R 2.12では参照クラス(非公式にはS5クラスと呼ばれます)があります。
S1(またはS2)クラスのようなものはありますか?もしそうなら、彼らは何ですか?そうでない場合は、なぜS3から始めるのですか?
oop - is.objectとS3クラスシステム
このclass
関数を使用すると、オブジェクトのクラスを判別できます。
is.object
また、コマンドを使用して、オブジェクトにクラスがあるかどうかを判断できることも理解しています。ただし、一部のオブジェクトタイプは暗黙的です。つまり、
Rのすべての変数はオブジェクトでis.object
あり、非暗黙的なクラスのみのテストであると述べるのは正しいでしょうか?
また、タイプはこれにどのように適合しますか。素朴に、私は次のコードがエラーを生成すると思いました:
しかしx
、それでも「double」タイプがあり、それでもすべてが機能します。タイプは、他のすべてのオブジェクトが継承するスーパークラスと考えることができますか?
oop - S3メソッドをS4オブジェクトで機能させるにはどうすればよいですか?
S4オブジェクトを含む任意のRオブジェクトで動作するS3メソッドを作成しています。
私が最初に理解していないのは、S4クラスがS4基本クラスから派生しているようには見えないため、ディスパッチメソッドをf <- function(x) UseMethod("f")
宣言してすべてのS4オブジェクトを取得させることはできないということです。f.S4
(unclass
S4オブジェクトの場合、クラスが指定されているように見えますS4
。)ディスパッチをどのように管理する必要がありますか?
これらのS4オブジェクトを処理する最も簡単な方法は、それらをリストに変換することだと思われます。残念ながら、as.list
エラーがスローされます(「このS4クラスをベクターに強制変換するメソッドはありません」)。
これは私のテストS4オブジェクトです:
関数S3Part
とパッケージは有望に見えましたが、で使用すると両方ともエラーが発生しS3Class
ます。したがって、質問2は次のとおりです。S4オブジェクトをリストに変換する一般的な方法はありますか?methods
win
r - Rで「S3メソッド」とはどういう意味ですか?
私はRにかなり慣れていないので、S3のメソッドとオブジェクトが何であるかわかりません。S3とS4のオブジェクトシステムがあり、可能であればS4ではなくS3を使用することをお勧めするものもあります(http://google-styleguide.googlecode.com/svn/trunk/google-r-styleでGoogleのRスタイルガイドを参照してください)。 html)*。ただし、S3メソッド/オブジェクトの正確な定義はわかりません。
更新:2019年の時点で、GoogleのRスタイルガイドのハイパーリンクがここにあります。