問題タブ [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 - メソッド定義を更新するようにR参照クラスオブジェクトに指示する方法は?
参照クラスのインスタンスに、そのメソッド定義の 1 つを忘れるように指示する方法を探しています。たとえば、クラスMyReferenceClass
とインスタンスを作成するmy_object
と、メソッドprint_hello
を呼び出すことができ、すべてが機能します。
新しいメソッド ( ) を追加してクラス定義を更新するprint_goodbye
と、既存のオブジェクトがそれを使用できるようになります。しかし、以前に定義したメソッド ( print_hello
) を変更すると、更新されません。
my_object
の定義を忘れるように伝える方法はありprint_hello
ますか? これは機能しません:my_object$print_hello <<- NULL
r - 参照クラス インスタンスのクラス定義の手動変更
これがひどく信頼性の低いハックであることは承知しています。しかし、純粋な興味から:
.refClassDef
既にインスタンス化されたオブジェクトの参照クラス定義が変更され、(再インスタンス化せずに)「更新について通知される」ようにしたい場合、参照クラス オブジェクトのフィールドで手動で何を変更する必要がありますか?
結局のところ、追加のメソッドが導入された場合は機能するように見えますが、既存のメソッドの変更では機能しません (以下の例を参照)。
この質問は、この投稿の私の回答に関連しています。
例
元のクラス定義:
インスタンス化:
更新されたクラス定義:
インスタンスは新しいメソッドを使用できます:
print_hello
ただし、たとえば、この投稿が示すように、変更について通知されない可能性があります。
r - ReferenceClass の [. メソッド
[.
のメソッドを書きたいと思いReferenceClass
ます。これまでのところ、次のようなものがあります。
...しかし、最終的に呼び出すとエラーがスローされますS[Index>3]
。この期待される結果を得るために上記を修正する方法は?
r - Rでは、ReferenceClassのフィールドの値を出力する方法は?
RにReferenceClassがあります。
クラス内のすべてのフィールドの値を出力するメソッド「print()」を追加するにはどうすればよいですか?
r - Rでは、「注:グローバル変数の目に見えるバインディングがありません」を抑制することは可能ですか?
コンソールを乱雑にしているRでこれらの出力を抑制することが可能かどうか疑問に思っています:
コードは次のとおりです (R プロジェクトの構成を格納する単純な ReferenceClass です)。
これまでに試したこと
変数を事前に定義したり、事前にnullに設定したりする組み合わせや順列を試してみましたが、Rはまだ何百もの「No Visible Binding」ノートをソースコードに頑固に出力しています。
R の内部構造に関して、私より賢い人はいますか?
更新 1
に変更しようとしましConfig <-
たConfig <<-
が、2 番目の無関係なメモが取り除かれます。ただし、最初の無関係なメモはまだ存在します。
更新 2
John Chambers によるサンプル コードでさえ、これらの恐ろしく無関係なメモをさらに生成します。
アップデート 3
これらのメモは Revolution R v7.0 で発生しますが、RStudio では発生しません。Revolution R v7.0 が を呼び出しているように見えますがR CMD check
、これは通常、パッケージを準備するときにのみ使用されるため、これらのメモは無視しても問題ありません。
更新 4
Hadley Wickhams コードもこれらのメモを生成します。どうやら、 を使用してそれらを排除することは可能utils::globalVariables
ですが、これは新しい ReferenceClasses では機能しないようです。それらを使用することがまったく可能であったとしても、Hadley は次のように述べています。
globalVariables は恐ろしいハックであり、私は決して使用しません。
r - roxygen2 R CMD チェック codoc 不一致の警告を使用して参照クラスを文書化する
roxygen2 を使用して参照クラス オブジェクトのドキュメントを作成しようとしていますが、R CMD チェックを実行すると次の警告が表示され続けます。
これは、上記の警告に関連する ref クラスと roxygen2 ブロックです。
生成された R ドキュメントは次のとおりです。
myRefClass-class {testPackaging} R ドキュメント myRefClass クラス
説明
myRefClass の説明
スロット
field1 文字スロット
field2 数値スロット
私が見つけたドキュメンテーションに関しては、codoc が私のコードとドキュメンテーションの間の一貫性をテストしています。私が知る限り、すべてのスロット名は同じです。おそらく私は何かを逃しています。ドキュメントがこれを参照クラスとして自動的にマークする必要があるかどうか、または何らかの方法でそれを示す必要があるかどうかわかりませんか? スロット「.xData は、異常な型からの継承を有効にするために使用される」ことを示す R ドキュメントを見つけましたが、ここで行っていることになぜそれが適用されるのか、またはそれを使用して何かを行う必要があるのか わかりません。
私はroxygenタグの順列をいくつか試しましたが、ここで見つかった構造に近づけることで、R CMDチェックから最良の結果/最小の警告が得られるようです: Roxygen2 - @export reference class generator? roxygen2 を参照クラスで使用する方法の例をネットで調べてきました。間違った場所を探しているのかもしれません。あまり運がありませんでした。
roxygen2 v 3.1.0 / RStudio バージョン 0.98.501 / R バージョン 3.0.3 / OSX 10.9.2 を使用しています (注: roxygen2 v 4.0 へのアップグレードを試みたところ、参照クラスが完全に詰まってしまい、ドキュメントが作成されていませんでした。まったく生成されません)
roxygen2 と参照クラスを使用する CRAN パッケージを知っている人がいれば、それがどのように適切に行われているかを知ることができます。Rでのパッケージ構築は初めてです。
r - 説明の「ReferenceClasses」とインポート/依存
クラスReferenceClass
のフィールドを持つ(パッケージで定義された)を含むパッケージを開発しています:data.table
data.table
パッケージDESCRIPTION
ファイルに書き込むとき:
すべて順調。ただし、できるだけ使用を避けるべきだと聞いたDepends
ので、次のように書き直しました。
ただし、これはパッケージのビルド時にエラーをスローします。
Depends
この場合、私は本当に使用を強制されますか?
r - R に参照クラスのインスタンスを保存する
R doc の ReferenceClasses ヘルプ ページの最後にある例を繰り返そうとしています。
保存されたオブジェクトに何も含まれていないように見えることを除いて、すべてが正常に機能します。