問題タブ [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 - setRefClass値渡し、参照渡し
setRefClass
Rのすべての側面を理解していないのではないかと思いsetRefClass
ます。初期化されたインスタンスがあるとしましょう。X
この変数がインスタンスのコピーと等しくなるように、またはのインスタンスを参照するように変数を作成したいと思いますsetRefClass
。違いはありますか?
と
完全には理解しておらず、コードに奇妙な動作があるようです。
ご協力いただきありがとうございます
r - R のエラー メッセージ:「methods() の引数には名前を付けるか、1 つの名前付きリストを指定する必要があります」
私は R でクラスとメソッドを作成するのが初めてで、ドキュメントがあまり見つからないという問題に直面しています。クラス「DataImport」を作成し、以下のメソッドを追加しようとしています:
このコードを実行すると、次のエラーが発生します。
このメソッドの直前にメソッドを追加できましたが、うまくいきましたが、これはそうではありません。なぜそうなるのか、どうすれば修正できるのか、私にはよくわかりません。
r - 呼び出しを記録する参照クラスを作成できますか
参照クラスについて質問があります。私の質問は、私がrChartsを開発している R パッケージのコンテキストにあります。参照クラスを使用して、R からインタラクティブなプロットを作成します。
プロットの作成には、一連の呼び出しが含まれます。最初に散布図が作成され、次に折れ線グラフが追加される例を次に示します。
さて、参照クラスはクロージャーのようなものなので、行われた呼び出しをログに記録できるかどうか疑問に思っていました. 一連の呼び出しをログに記録できれば、ビジュアライゼーションの作成に使用したソース コードを html と共に自動的に挿入できるという考えです。
sys.function
またはを利用できるかどうかを確認しようとしていましmatch.call
たが、どこにも行きません。誰かが私がこれにどのようにアプローチできるかを教えてくれれば、それは大歓迎です。
r - 参照クラスを動的に生成する
その場で R パッケージ内に参照クラスを生成しようとしていますが、かなり難しいことがわかっています。私が取ったアプローチと私が遭遇した問題は次のとおりです。
スキーマを動的に読み取り、関連する参照クラスを自動的に生成できるようにするパッケージを作成しています (SOAP を考えてください)。もちろん、これは、パッケージ ソースで事前に参照クラスを定義することができないことを意味します。
私は最初、単純なものを使用して新しいクラスを作成しようとしました:
もちろん、インタラクティブに実行すると問題なく動作しますが、パッケージ ソースに含めるとlocked binding
エラーが発生します。私の読書によると、インタラクティブに実行すると、クラス情報がロックされていないグローバル環境に保存され、パッケージのベース環境がロックされているために、これが発生しているように見えます。
次に、次の効果を得るために何かを使用することを提案するスレッドを見つけました。
パッケージをビルドしようとしたときに実際に R/Studio がクラッシュしたため、残念ながら生成されたエラーのログはありませんが、確かに機能しませんでした。
次に、これらの参照クラスを格納するために使用できる新しい環境をパッケージ内に作成してみました。.classEnv <- new.env()
そのため、パッケージ ソース (関数内ではなく) に行を追加し、新しい参照クラスを作成するときにこのクラスを使用しようとしました。
これは実際には問題なく動作するように見えましたが、次の警告が生成されます。
なんらかの理由でmethods::getPackageName()
、新しい環境がどのパッケージに含まれているかを取得できませんか?
getPackageName()
パッケージを正しく認識できるように、別の方法で新しい環境を作成する方法はありますか? getPackageName()
パッケージの検出に役立つ機能を追加できますか? 警告に対処できる場合でも、これは機能しますか、または参照クラスを動的に作成しようとして誤用していますか?
r - 参照クラスを使用してRの親クラスにフィールドを設定するには?
フィールドを設定params
して Template クラスで検証しようとしているので、それを行うことができTemplateClass$new(params)
、自動的に検証されますが、エラーが発生します:
EDIT:クラスのinitialize
メソッドをに変更することで解決したようです。しかし、なぜこれが必要なのかわかりません。Template
initialize = function(params = NULL){}
callSuper()
また、クラスにスーパークラスが含まれていない場合に他の人が使用するのを見てきました。これの理由は何ですか?
r - 参照クラス オブジェクトでの非標準クラスの定義
参照クラスは、許可されている基本/標準オブジェクト タイプのみを受け入れるようです。たとえば、 chron オブジェクトが必要ですが、これでは定義できません。
これは制限ですか、それとももっと良い方法がありますか? メソッドで設定してみましたinitialize
が、明らかにこれも方法ではありません。
r - Rの参照クラスでevalを使用するときに.selfを先頭に追加しないようにするにはどうすればよいですか?
eval
参照クラスのメソッドを呼び出すために使用する必要があります。以下はおもちゃの例です。
できると思いますがeval(parse(text = paste0(".self$", user_defined_text)))
、よくわかりません:
.self
フィールドではなくメソッドを評価する必要があるのはなぜですか?.self
一度使ったら必要なくなったのはなぜですか?
r - Rパッケージで定義された参照クラスを拡張する方法は?
パッケージで定義した参照クラスをユーザーが拡張できるようにしたいと考えています。おもちゃの例を次に示します。
このパッケージをロードした後、拡張しようとすると警告が表示されます。
この警告を取り除くにはどうすればよいですか?
r - 参照クラスからメソッドをデバッグするには?
getFields のような呼び出しをデバッグするには? 試しlibrary(debug); mtrace(AB.setFields)
ましたが、何も起こりませんでした。
さらに、AB.setFields を定義するためのより良い方法はありますか?
r - 参照クラスを使用したプログラミング
いくつかのポリモーフ コンストラクターと関数を定義する方法
/li>
のような場合の決定によってのみこれを行うことはできますか
関数型プログラミングとオブジェクト指向プログラミングを組み合わせる方法。したがって、関数 getFields(vecB) を呼び出す場合、vecB はオブジェクト B のベクトルまたはリストです。戻り値は各オブジェクトの値である必要がありますか?
/li>クラスAから初期化する関数などをデバッグする方法は? 私は試した
しかし、うまくいきません。