問題タブ [reference-class]
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.
r - 新しい参照クラスの重要性は何ですか?
どうやらジョンチェンバーズはバージョン2.12でRにリファレンスクラスを追加しました。オンラインではまだ多くの情報がないようですが、彼らはそれらをR5クラスと呼んでいます。これは、S3およびS4クラスと同じレベルにあることを意味します。
質問:参照クラスとは何ですか?これは既存のクラスタイプとどのように適合しますか?
r - Rの参照クラスのinitialize()メソッドでの割り当ての自動化
私は数十のフィールドを持つ参照クラスを使用しています。リストオブジェクトを取り込むメソッドを設定しましたinitialize()
。一部のフィールドはリスト要素からのさらなる計算に依存していますが、ほとんどのフィールドはリスト要素から直接割り当てられます。
これを少し自動化したほうがいいと思っていました。R擬似コードで例を示すには(この例は明らかに機能しません):
<<-
たとえば、次のようなことを行って、いくつかのエンドランを実行してみました。
しかし、サイコロはありません。
私の推測では、この種の動作は現在の参照クラスの化身では単純に不可能ですが、SOランドの誰かがこれを行うためのより良い方法を知っているかどうかを確認する価値があると思いました。
oop - R5参照クラスでクラスメソッドとクラス変数を定義する
R5参照クラスのクラスメソッドとクラス変数の正しい定義方法を知りたいです。
次に例を示します。
は XX のクラス変数であるかのXX$cc <- "cc"
ように動作しcc
ますが、これが正しい方法かどうかはわかりません。
たとえば、XX$def <- "hoge" は XX クラス ジェネレーターを壊す可能性があります。
それで、クラス変数とメソッドを定義する標準的な方法があるかどうか知りたいです。
前もって感謝します。
r - 参照クラスメソッドに「[[]]」表記を使用する
RIで新しい参照クラスを実験しているときに、メソッドに「[[]]」表記を使用すると(X $doSomethingの代わりにX[["doSomething"]])、奇妙な動作に気づきました。この表記はフィールドでは機能しますが、「class(X $ doSomething)」を実行すると、後で「[[]]」を使用できることがわかるまで、メソッドでは機能しないと最初は思っていました。以下の簡単な例は、ポイントを示しています。
これに遭遇した理由は、オブジェクトをリストにグループ化し、その中の各オブジェクトに指定されたメソッドを適用する「applyMethod」関数を作成したいためです。したがって、メソッドを文字列として指定する必要があります。誰かが私がこれを達成する方法について何かアイデアがありますか?
r - R 参照クラスを文書化するにはどうすればよいですか?
参照クラスのメンバー関数の使用を文書化するにはどうすればよいですか?
Rd
ブロックでファイルを書き込む場合、どうすれば\usage
ブロックを回避できますかWARNING
\usage
ブロックを使用すると、次のようなものを書くことができると思います。
\arguments
次に、ブロック内のパラメーターを文書化します。
私がこれを行うR CMD check
と、
メソッドをドキュメントが必要なコードオブジェクトとして認識しません。
今のところ、ブロックRd
なしでファイルを\usage
書き、ブロックに上記のコードを書いています\examples
が、引数を文書化する場所がなく、この方法でcheck
は実際にチェックすることはほとんどありません. 私はこれに満足していないので、現在の一般的な慣行についてコミュニティに尋ねています。
r - R 参照クラスでのメソッドの初期化
最適化アルゴリズムを実装しようとすると、R 参照クラスで奇妙な動作が発生することに気付きました。特定のメソッドの初期化に関与する舞台裏の解析マジックがいくつかあるようで、匿名関数の操作が困難になります。難しさを示す例を次に示します。最適化する関数 (f_opt)、最適化を実行する関数、およびこれら 2 つをメソッドとして持つ参照クラスを定義します。奇妙な動作はコードでより明確になります
それは私だけですか、それともこれは他の人にもバグのように見えますか?
r - 参照クラスを動的に拡張するときに継承を制御する方法
URL
webcrawler/webscraper 設定で、それぞれのホスト/ドメインに固有のメソッドを記述できるように、基本参照クラスを動的に拡張したいと考えています。明確にするために、動的とは、「新しいドメインが検出されたときにクラス定義を自動的に生成する(たとえば、クラスURL_something.com
から継承するクラスURL
)」のようなものを意味します。
唯一の問題は、私のクラスWebPage
が field の値が class であることを期待しているurl
ことですURL
。URL_something.com
これは classから継承されるため、 class のオブジェクトを受け入れますURL
が、実際にはオブジェクトを class のインスタンスに変換しますURL
。そのため、実際に class であるという情報を失いURL_something.com
ます。
その重要な情報が失われないようにする方法を知っていますか?
コード例
r - 参照クラス メソッドを更新する
私は現在、生成に時間がかかる大きなオブジェクトのリファレンス クラス (R5) を開発しています。setRefClass でクラスを再定義し、メソッドを更新するたびにオブジェクトを再現するよりも、メソッドを開発するためのより良い方法を誰かが知っているのではないでしょうか。
つまり、既存の Reference クラス オブジェクトのメソッドを再定義できますか。
r - R 参照クラスのプライベート メンバー
R参照クラス内にプライベートメンバーフィールドを持つことは可能ですか? 私が持っているいくつかのオンラインの例で遊んでいます:
残高を直接更新できるという事実が嫌いです。おそらく、私の中の古い純粋な OO は、バランスを非公開にして、少なくともクラスの外から設定できないようにしたいと思っています。
考え
r - 強制メソッドの書き方
カスタムメイドの参照クラスがたくさんあり、それらの強制メソッドを書きたいと思っています。関数呼び出しが次のようになるといいでしょう。
...
特定の強制のために追加のものを渡したい場合があるため、重要な部分はどこですか(以下を参照) do.deep = TRUE/FALSE
。
ただし、それを行うには、to
引数を取り、指定されたクラスの空のオブジェクトをインスタンス化してからto
「通常の」メソッドディスパッチを呼び出す「トランスフォーマー」のようなものを実装する必要がありますか? それとももっと良い方法がありますか?
以下に、私の現在の解決策を示します。character"
それは機能しますが、このクラスは通常のディスパッチャーへの処理に使用されto = "character
、無限再帰が発生するため、クラスに強制するオプションを「失っています」 。さらに、それは多くのオーバーヘッドです。
編集 2011-12-02
もちろんsetAs
、チェックする最初のアドレスになります。しかし、arg def
in で指定された関数setAs
は 1 つの引数しかとることができません。do.deep = TRUE/FALSE
たとえば、を使用するときにスイッチを含める方法がわかりませんsetAs
。