問題タブ [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.
oop - クラス スロットと初期化シグネチャの不一致
次の S4 クラスを検討してください。
次の方法でインスタンス化できます。
ここまでは順調ですね。ただし、Foo をサブクラス化しようとすると、エラーが発生します。
個人的には、明示的な引数を使用してクラス Foo をインスタンス化することを好みます。これは、コードがより明示的であるためです。しかし、これは不可能に思えますね。の署名はinitialize
、クラスが持つスロットと一致する必要があるようです。そうでない場合、発生するのを待っている問題です。私が間違っている?
r - R:クラスメタデータの場所
RでのS4クラスの作成に関する質問があります。「setClass」関数には、作成されたクラスのメタデータを格納する場所を定義する名前付き属性「where」があります。
しかし、私が次のことをすると
を使用して削除できます
そしてまだクラスを使用することができます、例えば
何故ですか?
前もって感謝します、
スヴェン
r - タイプ「S4」をタイプ「整数」のベクトルに強制できないのはなぜですか?
このエラーが発生する理由を誰かに教えてもらえます
Error in as.integer(tm) : cannot coerce type 'S4' to vector of type 'integer
か?
インターネットを検索していますが、問題を解決できませんでした。
}
r - R 並列 S4 クラス クラスタ エラー
R で並列パッケージを使用するコードを取得する際に問題が発生しています。R 2.15 を使用しています。
簡単な例を次に示します...次の内容を含む「animal.R」ファイルがあります。
次に、R ターミナルで次のコマンドを実行します。
2 つのノードのローカル クラスターを開始します。
Animal クラスについてクラスタ ノードに伝えます。
次に、クラスターでいくつかのコードを実行します。
クラスターを停止します。
parSapply への最初の呼び出しは期待どおりに機能しますが、2 番目の呼び出しでは次のエラーが発生します。
何が起こっているのですか?parSapply の 2 回目の呼び出しが機能しないのはなぜですか?
r - S4オブジェクトがインスタンスであるかどうかをテストします
オブジェクトがS4クラスのインスタンスであるかどうかをテストするにはどうすればよいですか(これが正しい用語であるかどうかはわかりません)。関数については知っていますisS4
が、これはクラス定義などにも当てはまります。例:
trajobject
この場合、データを含むオブジェクトにのみ関心があります。メソッドやクラス定義ではそれほど多くはありません。S4オブジェクトが実際のオブジェクトであるかどうかをテストするために使用できるネイティブ関数はありますか?つまり、出力を使用print(object)
する場合は次のように始まります。
クラス「foo」のオブジェクト....。
oop - S4 クラスのサブセット演算子を定義する方法は?
[
S4 クラスの、$
、および[[
サブセット演算子を定義する適切な方法がわかりません。
S4 クラスに対してこれら 3 つを定義する基本的な例を誰か教えてもらえますか?
r - setClass 表現を任意のクラスにする
クラス内のスロットの 1 つを任意のクラスにできるようにする方法はありますか?
つまり、次のようなもの
setClass("myClass", 表現(A="any"))
「S4」を試しましたが、うまくいきません
r - typ式のスロット
数式タイプのスロットを使用しようとしています。ただし、数式は基本的なデータ型ではありません。数式などのオブジェクトを格納するスロットを作成するにはどうすればよいですか。または、一般的なS3オブジェクトをスロットとして保存することを意図的に禁止していますか?タイプS4のスロットを意図的に使用する場合、S3クラスの式をS4クラスに変換するにはどうすればよいですか?
r - R 継承の数値メソッドのチャンク データの S4 クラスが機能しない
R で S4 クラスを作成して、クラウドから大きなデータセット (チャンク単位) にアクセスできるようにしたいと考えています (ff パッケージの目標と同様)。現在、「range.vec」というおもちゃの例を使用しています (インターネット アクセスはまだ扱いたくありません)。これには、次のような一連の数字が格納されます。
このクラスに「数値」からメソッドを継承させたいのですが、保存しているチャンクだけでなく、ベクトル全体でこれらのメソッドを使用したいのです。たとえば、「平均」に対して独自のメソッドを定義したくありませんが、「平均」が長さ()、「[」、「[ ['、および私が定義した el() 関数。チャンク関数も定義しました。
「平均」などのメソッドを呼び出そうとすると、関数は正しく継承され、長さ関数にアクセスしますが、.Data スロットにデータが保存されていないため、NA が返されます。.Data スロットを使用してチャンク関数を指す方法、またはすべてのメソッドを自分で定義せずに数値メソッドをチャンクするようにクラスに指示する方法はありますか? 可能であれば、C でのコーディングを避けようとしています。どんなアドバイスもとても役に立ちます!
r - 「show」は通常の S4 ジェネリック関数ですか?
data.frame から継承するクラスのメソッドを作成しようとしています。私はもともと data.frame から 'show' メソッドを継承することだけを望んでいましたが、自分で書いても問題ありません。クラスと「show」メソッドを次のように定義しました。
R コンソールに入力show
すると、次のように出力されます。
パッケージ "methods" から定義された "show" の standardGeneric
したがって、自分で StandardGeneric() を使用してジェネリックに変換する必要はないようです。しかし、setMethod("show", signature(x="SCvec"), function(x) print(x))
行を実行するとエラーが発生します
他のメソッドを定義するのと同じように、このメソッドを定義しました。このメソッド定義が機能しないのはなぜですか? 「show」は他のジェネリック関数とは異なりますか?