問題タブ [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.

0 投票する
1 に答える
237 参照

r - Roxygen2 - 参照クラスを文書化するときの「引数の長さはゼロです」エラー

最小限のケースを示すために、次のパッケージがあるとします。

私がroxygenizeRStudioで、「Build & Reload」の前に)。私は得る:

何がうまくいかないのですか?このエラーを解決するにはどうすればよいですか?

私のセットアップ:

  • Roxygen2 3.1.0
    • roxygen を使用して生成します (RStudio で):
      • Rd ファイル
      • 照合フィールド
      • 名前空間ファイル
    • 実行時に自動的に roxygenising (RStudio で):
      • R CMD チェック
      • ソースおよびバイナリ パッケージのビルド
      • ビルド&リロード
  • R: 3.0.2 (フリスビーセーリング)
  • IDE: RStudio 0.98.490
  • OS: Windows 8.1
0 投票する
1 に答える
1570 参照

r - R パッケージ - `methods` パッケージをインポートする必要がありますか?

setRefClassクラスの作成に使用していますが、methodsパッケージの一部であるため、この依存関係をimport.

ただし、次の最小限の例は、 ingのRcmd.exe checkときに失敗します。importmethods

次のエラーが表示されます (私のパッケージは と呼ばれますTest):

したがって、私が理解できることから、importforを削除しmethodsて、パッケージの への依存関係を隠しておくように言われているようですmethods。私の解釈は正しいですか?もしそうなら、なぜ依存関係を隠すのmethodsですか?

私のセットアップ:

  • Roxygen2 3.0.0
  • R: 3.0.2 (フリスビーセーリング)
  • IDE: RStudio 0.98.490
  • OS: Windows 8.1
0 投票する
1 に答える
124 参照

r - R 参照クラスでのフィールド アクセスの高速化

私はR 参照クラスを使用してコードを書いています。しかし、私が進歩するにつれて、プログラムは耐えられないほど遅くなりました。問題を示すために、次の例を取り上げます。

それはとります:

  • メソッド呼び出しの場合は 4 秒
  • 乱数を生成する呼び出しの場合は 7
  • フィールド値をインクリメントするための 19 秒

問題を引き起こしているのは最後の結果です。明らかに、乱数を生成するよりも数値をインクリメントするのに 2 倍の時間がかかるとは思いません。私のコードには、参照クラスのフィールド値へのアクセスと変更が多数含まれており、このパフォーマンスの問題により、プログラムはほとんど使用可能になりました。

私の質問: R 参照クラスでのフィールド ルックアップ/アクセスのパフォーマンスを向上させるためにできることはありますか? 私が別のことをしなければならないことはありますか?

0 投票する
2 に答える
65 参照

r - 明示的に定義されたメソッドのみを一覧表示する (参照クラス)

クラス定義で明示的に定義された参照クラスのメソッドのみをリストする方法はありますかrefObjectGenerator( またはなどの「システム クラス」によって継承されるメソッドとは対照的envRefClassです)。

メソッドを呼び出して現在取得している$methods()もの (「 」を参照?setRefClass):

私が探しているもの:

0 投票する
1 に答える
202 参照

r - 元のエラー メッセージの拡張

自分で書いていない関数の呼び出しが失敗したときにスローされる元のエラーメッセージを直接拡張/拡張/上書きする方法はありますか (つまり、ベース Rおよび提供されたパッケージの関数)?

次の参照クラスを検討してください。

正しい値を指定してもエラーなし:

間違った値を指定すると発生するエラー:

ここで、実際に「問題を引き起こした」クラスに関する情報を含めたいと思います。

たぶん、これは次のようになります。

近いものを実現するための現在の回避策は、次のようになります。

最初に「空の」オブジェクトをインスタンス化した後

これにより、明示的な設定メソッドを介してフィールドに間違った値を設定しようとすると、次のエラーが発生します。

以下の理由で嫌いです。

  1. ほんの少しの追加情報のための大量のコードであり、そのtryCatch()部分によりコードがやや読みにくくなっています。

  2. tryCatch()、AFAIUの性質上、「通常の」動作が予想される場合(つまり、「警告があったにもかかわらず、フィールド値がまだ設定されている」) 、.self$field(field=field, value=value)ステートメントを関数内に配置する必要があります。warning()それは重複したコードです。

  3. as.character()(AFAIUなどを介して情報を追加できるようにするために必要な)を介してエラーメッセージを強制すると、エラーメッセージが途切れることがpaste()あるようです。

  4. <obj>$setField(<field>, <value>)そうすれば、「組み込み」initialize関数 ( new("A", <field>=<value>))を介してフィールド値を設定するのではなく、明示的なセッター関数 ( ) を介してフィールド値を設定する必要があります。

0 投票する
1 に答える
584 参照

r - ReferenceClass の `print` メソッド

私は持っている:

MyClass <- setRefClass("MyClass" , fields = list(data="numeric"))

のオブジェクトを初期化しましょうMyClass:

OBJ <- MyClass(データ=1:4)

...そして画面に印刷します:

オブジェクト

印刷方法を変更したいので、この方法を書きました:

print.MyClass <- function(x) { cat("これは印刷表現です: ") print(x$data) }

これで動作します:

印刷(OBJ)

これはしません:

オブジェクト

入力するだけで印刷メソッドを実装する方法はありますOBJか?

show、またはも試し(OBJ)ましたが、私への愛はありません。