問題タブ [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.
r - Rで共通のS4スーパークラスを持つクラスのリストを取得する方法
Rでは、S4スーパークラスのサブクラスのリストを取得するにはどうすればよいですか?
showClass("mySuperClass",complete=FALSE) が見つかりましたが、結果のみが出力されます。ベクターに保存して使用したいと思います。
r - 同じパッケージでシミュレートの s3 および s4 メソッドを使用する R
エラーで困っています
S3 メソッドとして、simulate() メソッドの定義を含む R パッケージを作成しました。シミュレートのジェネリックは既に定義されているため、 simulate.myclass (私の場合は simulate.fitContinuous) を定義するだけです。
このパッケージは、シミュレートの S4 バージョンを含む別のパッケージにも依存しています。パッケージをロードすると、上記の S4 バージョン エラーが発生します。何がエラーを生成しているのかわかりません。
github からパッケージを取得するか、実行することによる再現可能な例
このエラーを最初から再現するには: 最小限の DESCRIPTION ファイルで新しいパッケージを作成します。説明のインポートを含めます: 痛い。NAMESPACE を作成し、imports(ouch) と S3method(simulate, test) を追加します。R ディレクトリを作成し、簡単な R スクリプトを追加します (前述の名前空間を生成する roxygen のドキュメントを含めましたが、このエラーは devtools/roxygen がなくても作成される可能性があります)。
パッケージをインストールすると (必要に応じて最初に devtools をドキュメント化してください)、エラーが発生します。
これまでの私の最善の解決策は、NAMESPACE から S3method 行を削除し、代わりに完全な関数の simulate.test をエクスポートすることです。これは警告なしでチェックとインストールに合格しますが、明らかに劣ったソリューションです。
別の解決策は、インポートと同様に依存関係を持ち、S3 メソッドを適切に文書化することです (上記のように)。その後、すべてが期待どおりに機能しますが、警告メッセージは残ります。
r - RのS4オブジェクトの合計
S4クラスがあり、これらのオブジェクトの線形結合を定義したいと思います。
この特定のクラスでディスパッチ*
して機能することは可能ですか?+
r - Roxygen2を使用して一般的なエイリアスなしでクラス固有のエイリアスを追加するには?
show
簡単な例として、S4 ベース メソッドであるへの拡張機能を作成しました。show
パッケージに再ドキュメント化することで明確化フォークを引き起こしたくありません。また、 のエイリアスを追加して、拡張機能show
のドキュメントを新しいクラス のドキュメントに統合したいと考えています。myPkgSpClass
show,myPkgSpClass-method
私が抱えている問題は、このパッケージRd files with duplicated alias 'show':
には複数のクラス拡張がshow
あり、roxygen2 がすべてのエイリアスのリストに一般的な用語を自動的に追加したため、roxygen2 によるドキュメントのビルド中に重大な警告が発生することです。関連*-class.Rd
ファイル:
しかし、どのインスタンスにもジェネリック エイリアスは必要ないと思います。これはshow
、パッケージ内と base の間のあいまいさを解消する必要があるためshow
です。この問題は、 以外の他のパッケージから拡張された他の S4 メソッドにも適用されますshow
。
すべてのクラス固有のメソッドを同じファイルにタグ付けすると、警告は消えますが、そのドキュメント エントリに対してエイリアスが自動的に追加される.Rd
ため、あいまいさが残ります。ファイルからshow
手動で削除すると、問題は解決したように見えます.roxygenまたは. では、Roxygen2 にジェネリック エイリアスを追加しないようにするにはどうすればよいでしょうか。\alias{show}
.Rd
R CMD check pkgname
その他の背景:
これは、S4 拡張機能を基本メソッドにエクスポート/文書化するための以前の問題から構築された特定の質問です: Is it need to export base method extensions in an R package? ドキュメンテーションへの影響?
これは、Roxygen2 を使用した S4 メソッド / クラスの文書化に関する次の質問よりも具体的であり、カバーされていません。
r - S4 オブジェクトで S3 クラスを使用する例
S4 オブジェクトの一部として RODBC 接続を含めたいです。RODBC は S3 のようです。例えば:
投げundefined slot classes
ます。を使いたいのですが、使い方setOldClass
が分からず困っています。RODBC 接続をスロットとして Node クラスに含めることができるようにするにはsetOldClass
、どのように使用すればよいでしょうか?setOldClass
r - 割り当てなしで R にメソッドを設定する
代入演算子なしで呼び出すことができる R の初期化後の置換メソッドをいくつか用意したいと思います。
たとえば、次のようになります。
setNode(o)
のようなものを呼び出さなくても、オブジェクト o のスロットを呼び出して置換できるようにしたいと考えていますsetnode(o) <- c("foo", "bar")
。私がこれをしたい理由select.list
は、メソッドのユーザーが割り当ての詳細を認識しなくても、これらに対話性があること (つまり) が必要だからです。
これは可能ですか?
r - オブジェクトおよび newdata クラスで「予測」ディスパッチするための S4 メソッド
predict
は引数object
およびで定義されます...
。私は pcaadd と呼んでpredict.pcaadd
関数を書いた PCA のようなモデルを導き出しました。ここまでは順調ですね。object
ここで、署名と(署名)"pcaadd"
内の特定の種類のオブジェクトで 機能する (S4) メソッドを追加したいと思います。newdata
"hyperSpec"
(どのように) ジェネリックが object
and ...
only で定義されている場合、これを行うことができますか?
のクラスをチェックnewdata
して適切な処理を行いますが、完全な解決策ではないようです。
r - 複数の s4 クラス オブジェクトを割り当てるために使用するオブジェクトの種類は?
私はこれをしたい:
..しかし、ctreeの結果を割り当てるために使用できるオブジェクトのタイプがわかりません。
ご指摘ありがとうございます、ケイ
r - @を使用してS4オブジェクトスロットに直接アクセスするのは悪い習慣ですか?
これはほとんど哲学的な質問です。S4オブジェクトのスロットに直接アクセスしたり、スロットを設定したりするのは悪いこと@
ですか?
これは悪い習慣であり、ユーザーは「アクセサー」S4メソッドを使用する必要があり、開発者はユーザーにこれらを提供する必要があると常に言われてきました。しかし、誰かがこの背後にある本当の取引を知っているかどうか知りたいですか?
パッケージを使用した例を次に示しsp
ます(ただし、任意のS4クラスに一般化できます)。
r - nigfit() から推定されたパラメータを変数に保存する方法
時系列リターンを NIG 分布に自動的に適合させたいと考えています。パッケージ fBasics の nigfit() を使用して、分布のミュー、アルファ、ベータ、デルタを推定します。
これは問題なく動作します。つまり、nigfit がパラメーターをプロットします。ただし、推定されたパラメーターを使用して変数に保存したいと思います。そのため、後でそれらを使用できました。
これはうまくいきません。「変数」は、クラス構造fDISTFITのS4 オブジェクトです。変数を呼び出すと、上記の nigfit の出力が再プロットされます。パラメータを1つだけ取得するために、次の表記法を試しました。
nigfit のドキュメントで答えが見つかりませんでした。推定されたパラメータを変数に保存することはできますか? それはどのように機能しますか?