問題タブ [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 に答える
446 参照

r - S4クラスを含むパッケージで推奨されるパッケージビルドワークフローは何ですか?

重複の可能性:
Roxygen2を使用してS4クラススロットを適切に文書化する方法

S4 classesRStudioとを使用したパッケージを作成したいと思いますroxygen2。パッケージにroxygen2いくつかを導入したとき、構文を使用してすべての関数をすでに文書化していました。S4 classes

今、私は、すぐに使える「@slot」機能がないことに気づきました。それで、他の機能のためにすべてのドキュメントを機能させ続け、このスレッドS4 classesで提案されているように手動でドキュメントを作成するにはどうすればよいでしょうか?

つまり、古い学校の機能との両方を含むパッケージを構築するために、どのワークフローをお勧めしますS4 classesか?

編集:.Rdファイルを作成しないようにRStudioで構築されたツールを構成することをお勧めしますか。roxygenize手動で情報を追加し、後で情報を追加しますか?それでも、これはクラスの手動で生成された.Rdファイルを上書きすることにつながります...

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

r - S4 の setMethod - オブジェクトを引数として必要としないメソッドを定義する方法は?

R で S4 クラスを使用して、オブジェクトに 2 つの値を割り当てるメソッドを定義します。

そして、次のように使用します

しかし、これはobj、関数への引数として常に記述しなければならないことを意味します。

オブジェクト自体を引数として使用せずに使用できるメソッドを S4 で定義することは可能ですか?

例えば:

あらゆる種類の提案に非常に感謝しています! :)

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

r - R S4 クラスと Matrix パッケージでの + 演算子のオーバーロード

+演算子をオーバーロードしようとして、Matrixパッケージを疎行列で使用すると、奇妙な効果が得られます。最初に、Matrix パッケージを使用しないが+演算子を持つ非常に単純なクラスを定義します。次に、2 つの疎行列を合計します。最初のM+M加算では期待どおりの結果が得られますが、2 番目の加算ではエラーがスローされます。エラーを生成する非常に単純なコードを次に示します。

2 番目の追加では、次のエラーがスローされます。

また、行列が疎でない場合、エラーは発生しません。+I define と+for sparseMatrixの間に干渉はありますか? +演算子を正しく定義していませんか?

ありがとうございました!

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

r - S3 仮想クラスを S4 クラスのスロットとして使用し、エラーが発生しました: クラス "S4" を取得しました。クラス "nls.lm" である必要があります。

R バージョン:

nls.lm (パッケージ: minpack.lm) の関数の出力オブジェクトをスロットとして使用する S4 クラスを作成したい:

さて、このクラスを「コンストラクター関数」で呼び出したい場合は、次のようなことができます (正しいですか?):

オブジェクト「pippo」は正しく初期化されているようです。

代わりにこのコードを使用すると、エラーが発生しました。

新しいいくつかのスロットで INIT を実行したい場合、これは S3 クラス スロットで問題を引き起こしますか?

この問題を回避する方法の手がかりはありますか?

ありがとう

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

r - 'spec'S3クラスを新しいS4クラスに変換します

(クラス'spec')Rから返されたオブジェクトを(強制?)新しいS4クラスに変換したいのですが。stats::spectrumS3クラスの「spec」は、基本的に、さまざまな形式のさまざまな情報のリストです(画面出力にコメントしました)。

ここで、「specS4」という名前のクラスに新しいS4ジェネレーターを定義するとします。ここで、スロット名は「spec」オブジェクトの名前です。

そしてそれから新しいオブジェクトを生成します:

psd3の各コンポーネントを対応するスロットに割り当てる最良の方法は何でしょうpsd4か。 複雑なのは、いくつかの(既知の)フィールドにspectrum戻る可能性があることです。これらの値を割り当てると、 (指定された表現に対して)NULLエラーがスローされます。checkSlotAssignment

私が持っている苦痛な解決策は次のとおりです。

as.specS4.spec意図的に不完全ですが、これは機能します。

何を達成するためのより良い方法はありas.specS4.specますか?この解決策は不安定なようです。

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

r - R:S4スロットの出力を生成するソースコードを見つけますか?

G'dayみんな、

'lme4'の'lmer'関数を実行すると、多くのスロットを持つS4オブジェクトが生成されます。これらのスロットの1つ、つまりmodel @ Xと、この「X」スロット出力がどのように生成されるかに興味があります。この出力を、この「X」出力を自動的に生成しない別のモデル関数(glmmPQL)で再現してみたい(FYI「lmer」はクラス「mer」のオブジェクトを生成し、スロット「X」はモデルです)固定効果の行列)。以下のコードは、私が話していることを示しています。

私が理解したいのは、この「X」データがどのように生成されたかです。ターミナルに「()」を付けずに「lmer」のコードを記述して調べましたが、何も見つかりませんでした。showMethod('lmer')も試しましたが、関数'lmer':と表示されます。

「X」スロットが特に実行していること(またはS4オブジェクトの任意のスロット)のソースコードを取得する方法があるかどうか疑問に思っていますか?または、これを再現する方法を知っている人はいますか?あなたの助けと時間をありがとう。

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

r - S4 クラスの R パブリック メソッド

S4 クラスをサブクラス化し、そのサブクラスに特別なメソッドを追加したいと考えています。メソッドはサブクラスに対してのみ機能するはずです。アプリケーション内の他のクラスでは意味がありません。

それはsetGeneric機能しますが、このオブジェクトでのみ使用されますが、本当にジェネリック関数を定義する必要がありますか? コメントアウトされた部分は機能しますが、関数が正しい引数で呼び出されているかどうかはチェックされません。これを行う正しい方法は何ですか?前もって感謝します。

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

r - Rでユーザー定義のS4クラスのデータフレームを作成する方法

S4クラスを含むさまざまな変数のdata.frameを作成したいと思います。「POSIXlt」(日付用)のような組み込みクラスの場合、これは正常に機能します。

しかし今、私はユーザー定義のクラスを持っています。たとえば、名前と年齢を持つ「Person」クラスを考えてみましょう。

しかし、以下は失敗します:

私もオーバーロードしようとしました[...]-を使用して人のクラスの演算子

これにより、ベクトルのような動作が可能になります。

しかし、それでも次は失敗します。

おそらく、ユーザー定義クラスをデータフレームに取り込むために、より多くの演算子をオーバーロードする必要がありますか?POSIXltはS4クラスであり、機能するため、これを行う方法があるはずです。新しいR5参照クラスを使用するソリューションも問題ありません。

すべてのデータをpersonクラスに入れたくありません(「id」がpersonのメンバーではない理由は、データフレームを使用しないだけです)。アイデアは、私のdata.frameが、文字列、数値など、さまざまなタイプの多くの列を持つデータベースのテーブルを表すということですが、日付、間隔、ジオオブジェクトなどもあります。間隔、ジオオブジェクトなどのソリューション(POSIXlt)。おそらく、独自のS4/R5クラスを指定する必要があります。

よろしくお願いします。

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

r - 3つのドットでS4メソッドを定義する

作成したオブジェクトの「c」メソッドを定義しようとしています。

何かのようなもの

問題は、ディスパッチが適切に行われるように...のクラスを定義できないことです。何か案が?

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

r - unlist()に相当するS4はありますか?

オブジェクトとそのスロットの操作経験があるS4ので、特定のスロットとサブスロットにアクセスする方法を知っています。私が学びたいのunlistは、S3リストを分解する方法でオブジェクトを「スロット解除」する方法です。
私の当面の目標は、オブジェクトの要素の数を返す私のおもちゃの1つに対応するS4を用意することです。

(私のコードを公正に笑うことはありません:-))。スロットを一度に1つずつ抽出して変換する再帰ルーチンを作成する必要がないことを望んでいます。

編集:object.sizeバイトカウントが返されることはわかっています。私がここで求めているものではありません。