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

oop - クラス スロットと初期化シグネチャの不一致

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

次の方法でインスタンス化できます。

ここまでは順調ですね。ただし、Foo をサブクラス化しようとすると、エラーが発生します。

個人的には、明示的な引数を使用してクラス Foo をインスタンス化することを好みます。これは、コードがより明示的であるためです。しかし、これは不可能に思えますね。の署名はinitialize、クラスが持つスロットと一致する必要があるようです。そうでない場合、発生するのを待っている問題です。私が間違っている?

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

r - R:クラスメタデータの場所

RでのS4クラスの作成に関する質問があります。「setClass」関数には、作成されたクラスのメタデータを格納する場所を定義する名前付き属性「where」があります。

しかし、私が次のことをすると

を使用して削除できます

そしてまだクラスを使用することができます、例えば

何故ですか?


前もって感謝します、

スヴェン

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

r - タイプ「S4」をタイプ「整数」のベクトルに強制できないのはなぜですか?

このエラーが発生する理由を誰かに教えてもらえます
Error in as.integer(tm) : cannot coerce type 'S4' to vector of type 'integerか?
インターネットを検索していますが、問題を解決できませんでした。

}

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

r - R 並列 S4 クラス クラスタ エラー

R で並列パッケージを使用するコードを取得する際に問題が発生しています。R 2.15 を使用しています。

簡単な例を次に示します...次の内容を含む「animal.R」ファイルがあります。

次に、R ターミナルで次のコマンドを実行します。

2 つのノードのローカル クラスターを開始します。

Animal クラスについてクラスタ ノードに伝えます。

次に、クラスターでいくつかのコードを実行します。

クラスターを停止します。

parSapply への最初の呼び出しは期待どおりに機能しますが、2 番目の呼び出しでは次のエラーが発生します。

何が起こっているのですか?parSapply の 2 回目の呼び出しが機能しないのはなぜですか?

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

r - S4オブジェクトがインスタンスであるかどうかをテストします

オブジェクトがS4クラスのインスタンスであるかどうかをテストするにはどうすればよいですか(これが正しい用語であるかどうかはわかりません)。関数については知っていますisS4が、これはクラス定義などにも当てはまります。例:

trajobjectこの場合、データを含むオブジェクトにのみ関心があります。メソッドやクラス定義ではそれほど多くはありません。S4オブジェクトが実際のオブジェクトであるかどうかをテストするために使用できるネイティブ関数はありますか?つまり、出力を使用print(object)する場合は次のように始まります。

クラス「foo」のオブジェクト....。

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

oop - S4 クラスのサブセット演算子を定義する方法は?

[S4 クラスの、$、および[[サブセット演算子を定義する適切な方法がわかりません。

S4 クラスに対してこれら 3 つを定義する基本的な例を誰か教えてもらえますか?

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

r - setClass 表現を任意のクラスにする

クラス内のスロットの 1 つを任意のクラスにできるようにする方法はありますか?

つまり、次のようなもの

setClass("myClass", 表現(A="any"))

「S4」を試しましたが、うまくいきません

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

r - typ式のスロット

数式タイプのスロットを使用しようとしています。ただし、数式は基本的なデータ型ではありません。数式などのオブジェクトを格納するスロットを作成するにはどうすればよいですか。または、一般的なS3オブジェクトをスロットとして保存することを意図的に禁止していますか?タイプS4のスロットを意図的に使用する場合、S3クラスの式をS4クラスに変換するにはどうすればよいですか?

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

r - R 継承の数値メソッドのチャンク データの S4 クラスが機能しない

R で S4 クラスを作成して、クラウドから大きなデータセット (チャンク単位) にアクセスできるようにしたいと考えています (ff パッケージの目標と同様)。現在、「range.vec」というおもちゃの例を使用しています (インターネット アクセスはまだ扱いたくありません)。これには、次のような一連の数字が格納されます。

このクラスに「数値」からメソッドを継承させたいのですが、保存しているチャンクだけでなく、ベクトル全体でこれらのメソッドを使用したいのです。たとえば、「平均」に対して独自のメソッドを定義したくありませんが、「平均」が長さ()、「[」、「[ ['、および私が定義した el() 関数。チャンク関数も定義しました。

「平均」などのメソッドを呼び出そうとすると、関数は正しく継承され、長さ関数にアクセスしますが、.Data スロットにデータが保存されていないため、NA が返されます。.Data スロットを使用してチャンク関数を指す方法、またはすべてのメソッドを自分で定義せずに数値メソッドをチャンクするようにクラスに指示する方法はありますか? 可能であれば、C でのコーディングを避けようとしています。どんなアドバイスもとても役に立ちます!

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

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」は他のジェネリック関数とは異なりますか?