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

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

r - Rパッケージでのグループジェネリック関数の定義

作成しているRパッケージ内でジェネリックグループを定義するのに問題があります。

これはかなり最小限の例です:

このコードをRターミナルに貼り付けると、すべてが期待どおりに機能します。

ただし、これをパッケージにビルドしようとすると、次のエラーが発生します。

package.skeleton()からのデフォルトの出力を使用しており、以下を追加しています。

NAMESPACEファイルに

私が間違っていることについて何か考えはありますか?

0 投票する
0 に答える
803 参照

r - roxygen2を使用したS4メソッドの文書化:ヘルプファイルでメソッドを明確に区別する

狙って撃つ前に

この質問はこの投稿と密接に関連していることを私は知っています。実際、私はさまざまな回答で与えられたアドバイスに従いましたが、結果のヘルプファイルは少し「ぎこちない」か、少なくとも少し「まとまって」いるように感じます。したがって、私の質問です。

実際の質問

  1. S4ジェネリックとそれぞれのメソッドをドキュメント化する場合、ユーザーがさまざまなメソッドを明確に区別できるRdファイル構造を作成して、ドキュメントのどの部分が特定のメソッドに属しているかを明確にするにはどうすればよいですか?
  2. タグを提供した場合、特定のメソッド@aliasのヘルプを取得しようとするときに実際にタグを使用するにはどうすればよいですか?ただタイプする代わりに何か??foo-character-method?foo
  3. 各メソッドにはそれぞれのドキュメントが確実に含まれるため、a)ジェネリックメソッドの署名引数をまったくドキュメント化しない方がよいでしょう。b)これもそれぞれのメソッド次第であるため、戻り値はありますか?

今のところ、少なくとも視覚的には、一般的な方法とさまざまな方法の適切な区別を実際には処理できないように見えるヘルプファイルになってしまったように感じます。

しかし、多分私はまだこれを完全に取得していません;-)。この場合、どんなポインタでも大歓迎です!


mypkgこれは、S4ジェネリックと2つのメソッドを含むパッケージを生成する再現可能な例です。私はこの投稿WritingRExtensionsで与えられたアドバイスに従おうとしました

ディレクトリの確保

ジェネリックメソッドの定義

関連するメソッドの定義

パッケージスケルトンを作成する

酸素化

Rdファイルにパッチを適用する

Rdファイルの手動編集など、手動による介入を必要としない自動チェックおよびビルドプロセスを可能にするために、パッチを適用する必要があるものもあります。

パッケージを確認してください

パッケージをビルドしてインストールします

ヘルプファイルを調査します


別の方法:ビルドとインストールの分離

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

r - 引数のデフォルト値をS4ジェネリック関数から関連するメソッドにディスパッチする

特定のS4ジェネリック関数/メソッドに関連付けられているすべてのS4メソッドが、特定のデフォルト値を持つことになっている仮引数を共有しているとします。直感的には、S4ジェネリックの定義でそのような議論を述べます(私には多少冗長に見える各メソッド定義でそれを述べるのとは対照的です)。

ただし、この方法では、仮引数のデフォルト値がメソッドにディスパッチされていないように見え、エラーがスローされるため、問題が発生していることに気付きました。

これは、ジェネリックとメソッドの組み合わせを持つという考えにいくらか反対ではありませんか?デフォルト値が常に同じであるのに、なぜ各メソッドで仮引数を個別に記述しなければならないのですか?どういうわけか、正式な引数のデフォルト値を明示的にディスパッチできますか?


以下に、動作の簡単な図を示します。

ジェネリック関数

方法

エラー

do.bothそれを修正する冗長なステートメント

0 投票する
3 に答える
693 参照

r - 参照クラス、タブ補完、および強制メソッド定義

私は現在、参照クラスを使用してパッケージを作成しています。私はさまざまな情報源を読んだことから問題に遭遇しました:

R参照クラスでのメソッドの初期化

SnowfallでRefClassメソッドを確実に使用できない

私が収集するのは、参照メソッドがクラス内のすべてのオブジェクトにすべてコピーされるのではなく、最初にアクセスされたときにコピーされるためです。

https://stat.ethz.ch/pipermail/r-devel/2011-June/061261.html

例として、以下を定義します。

したがって、例はクラスの新しいオブジェクトですTEST。コンソールで入力example$してタブを押すと、

そのため、この方法addoneはオプションとして提示されていません。ただし、電話をかけることができます。

今度はタブでもう一度表示します

だから今addoneそしてfieldそしてshowオプションとして提示されています。

Martin Morganは、上記のリンクの1つでメソッドの定義を強制することをお勧めします。これはうまくいきます

だから今タブは与える:

私のクラスのいくつかは30以上のメソッドを持っているので、これをできるだけ簡潔にしたいと思います。私は定義しました:

タブを使用すると、次のようになります。

これは機能しますが、少し不器用に感じます。また、それは少し間違っていると感じるようにではtest$def@refMethodsなく使用されます。getRefClass("TEST")$def@refMethods誰かが以前にこの問題に対処したことがあります。

解決策にアプローチするためのより良い方法はありますか?質問が過度に引き出された場合は、アドバイスと謝罪に感謝します。

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

r - スロットを条件とする多くのインスタンスからクラスのインスタンスを選択しますか?

S4この例のように、クラスのインスタンスがいくつかあると仮定します。

単語を含むすべてのクラスの名前(つまり、名前スロットまたはオブジェクト名)を返したいと思いますtestgrepシングルスロットで使用する場合、部分的に機能します。

私は全体の表現「いくつかのテスト」で終わります。もちろん、これらすべてのスロットをリストに入れて、それらに適用することもできます。しかし、それでも私は、それらがどの名前に属しているかを知らずに、説明自体になってしまいます。

では、どうすれば必要なインスタンスを見つけることができますか?

クラスのインスタンスの束を別の環境に整理するのか、それともインスタンスのリストを整理するのか。

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

r - クラス定義を s4 クラスのスロットとして設定できないことがあるのはなぜですか?

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

r - R のパッケージ内の関数のソース コードを表示する

重複の可能性:
R: パッケージ内の S4 関数のソース コードを表示する

パッケージ ( GEOquery) をダウンロードして、いくつかの機能を試していました。そのうちの 1 つは と呼ばれTable、私の理解では、データセットを集計することができS4ます。

例えば

getAnywhere(Table)ショー

クラスを強制できなかったので、TableGDSデータセットを集計する方法を知ることができるようにコードを学びたいと思います-たとえば、GDSデータセットを集計することはできましたがdata.frameas.listS4

他の投稿で提案されているように試しましたgetMethodsが、以下は私が得たものです

入れて「どこ」も指定しようとしましたpackage=:GEOqueryが、どうやらpackage未使用の引数です。

のソース コードが表示されないのは、私が何を間違えたのだろうかTable

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

r - ベースRS3ジェネリックにS4ディスパッチを追加

mergeS4である必要がある空間メソッドを追加しようとしています(2つの異なるオブジェクトのタイプにディスパッチするため)。

私は次のように以前の解決策を使用しようとしました:

どちらが機能しますか:

xが偽物ではなく実際にSPDFである場合、実際にそのコードを実行した場合に発生するスロットエラーを返さない(または実行しないで、単にエラーを返さない以下のより寛容なジェネリック)。SPDFは作成するのが面倒です。

問題は、S3ディスパッチが上書きされたように見えることです。

どうすればそれを回避できますか?から関数定義を削除してsetGeneric、単純に読み取るようにしましたsetGeneric("merge")が、それも機能しません。mergeどういうわけかS3ジェネリックをからインポートする必要がありbaseますか?

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

r - S4クラスの定義はパッケージでどのように行われ、どのように適切に文書化されていますか?

クラスを定義したら、パッケージのどこに配置するのか疑問に思います。classDefintions.RS4クラス定義を含むファイルを作成し、それをRフォルダーに配置する必要がありますか?もしそうなら、どうすればそれを適切に文書化できますか?.rdS4クラスのファイルテンプレートはありますか?

Roxygen2でこの投稿を見つけましたが、ここから少し遅れている可能性があります。それは基本的にどのように行われ、配置されていますか?

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

r - S4 クラス: スロットごとに複数のタイプ

1 つまたは複数のスロットが複数のクラスになる S4 クラスを作成することはできますか? 例えば。データがベクターまたは data.frame のいずれかである状況があったとします。

それとも、サブクラス/スーパークラスの定義が必要になるような状況ですか?

PS: S4 クラスに関する有用なチュートリアルを検索しても、限られた結果しか得られません。S4 クラスの作成/使用/ドキュメントに関する優れたチュートリアルへのリンクをいただければ幸いです。