S4 クラスを別の S4 クラスから正しく継承するにはどうすればよいですか?

サラン・マンジレカル

クラス Employee が他のクラス Person から継承する 2 つの S4 クラスを作成しています。

両方のクラスの定義は次のとおりです。

setClass("Person", slots = list(name="character", age="numeric"))

setClass("Employee", slots = list(boss="Person"))

これら 2 つのクラスのそれぞれにインスタンスを 1 つずつ作成しています。

alice <- new("Person", name="Alice", age = 40)

これはうまくいきますが、次を使用して Employee のインスタンスを作成しようとすると:

john <- new("Employee", name = "John", age = 20, boss= alice)

以下のようなエラーが表示されます。

Error in initialize(value, ...) : 
  invalid names for slots of class “Employee”: name, age

この方法でオブジェクトを作成することはできませんか?

ジョリス・メイズ

nrusselのコメントごと:

contains関数の引数setClass継承を扱います。クラスEmployeeクラスから継承する必要がありますPerson(つまり、従業員は特殊なタイプの人です)。そう

setClass("Person", slots = list(name="character", age="numeric"))
setClass("Employee", slots = list(boss="Person"), contains = "Person")

トリックを行います。

> alice <- new("Person", name="Alice", age = 40)
> john <- new("Employee", name = "John", age = 20, boss= alice)
> john
An object of class "Employee"
Slot "boss":
An object of class "Person"
Slot "name":
[1] "Alice"

Slot "age":
[1] 40


Slot "name":
[1] "John"

Slot "age":
[1] 20

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

S4クラスBのリストを属性として持つS4クラスAを作成するにはどうすればよいですか?

分類Dev

スタンのS4クラスを継承する方法

分類Dev

Rで、クラス定義内の別のパッケージからS4クラスを参照するにはどうすればよいですか?

分類Dev

Rで継承されたS4クラスで有効性関数を正しく使用する方法

分類Dev

Rcppで生成されたS4クラスのS4メソッドはまだ.onLoad()を必要としているようです

分類Dev

データフレームから継承するS4クラスを作成します

分類Dev

s4クラスに引数を追加します

分類Dev

Rで定義されたS4クラスの関数 `match`と`%in% `の動作を定義するにはどうすればよいですか?

分類Dev

RのS4クラス出力から値を取得します

分類Dev

1つのS4クラスから値を抽出する方法

分類Dev

堅牢な線形モデル用にS4クラスにスロットを作成するにはどうすればよいですか?

分類Dev

別のパッケージからS4クラスを拡張する:reconcilePropertiesAndPrototypeエラー

分類Dev

追加の引数を持つS4クラス[(サブセット)継承

分類Dev

S4オブジェクトの空のスロットを禁止するにはどうすればよいですか?

分類Dev

S4クラスにS3スロットを含めることは可能ですか?

分類Dev

S4オブジェクトを行列に格納する

分類Dev

環境間でS4の継承が失われるのはなぜですか?

分類Dev

S4クラスオブジェクトでの基本的な演算の実装

分類Dev

S4クラスリストからデータフレームへ

分類Dev

s4クラスのUUIDgenerate()は、各インスタンスで同じuuidを生成します

分類Dev

S4クラスで新しいオブジェクトを初期化する方法は?

分類Dev

Rで動的に作成されたS4クラスの変数をループする

分類Dev

RでのS4行列のサブセット化

分類Dev

setメソッドはS4クラスを初期化するか関数を使用するか

分類Dev

通常のリストのコンポーネントのようにs4クラスのコンポーネントを選択するにはどうすればよいですか?

分類Dev

別のパッケージにクラス定義があるスロットを使用してS4クラスを定義します

分類Dev

Roxygen2を使用してS4クラススロットを適切に文書化する方法は?

分類Dev

RのS4クラスのスロットを自動的に更新する方法

分類Dev

Rでクラスを作成する:S3、S4、R5(RC)、またはR6?

Related 関連記事

  1. 1

    S4クラスBのリストを属性として持つS4クラスAを作成するにはどうすればよいですか?

  2. 2

    スタンのS4クラスを継承する方法

  3. 3

    Rで、クラス定義内の別のパッケージからS4クラスを参照するにはどうすればよいですか?

  4. 4

    Rで継承されたS4クラスで有効性関数を正しく使用する方法

  5. 5

    Rcppで生成されたS4クラスのS4メソッドはまだ.onLoad()を必要としているようです

  6. 6

    データフレームから継承するS4クラスを作成します

  7. 7

    s4クラスに引数を追加します

  8. 8

    Rで定義されたS4クラスの関数 `match`と`%in% `の動作を定義するにはどうすればよいですか?

  9. 9

    RのS4クラス出力から値を取得します

  10. 10

    1つのS4クラスから値を抽出する方法

  11. 11

    堅牢な線形モデル用にS4クラスにスロットを作成するにはどうすればよいですか?

  12. 12

    別のパッケージからS4クラスを拡張する:reconcilePropertiesAndPrototypeエラー

  13. 13

    追加の引数を持つS4クラス[(サブセット)継承

  14. 14

    S4オブジェクトの空のスロットを禁止するにはどうすればよいですか?

  15. 15

    S4クラスにS3スロットを含めることは可能ですか?

  16. 16

    S4オブジェクトを行列に格納する

  17. 17

    環境間でS4の継承が失われるのはなぜですか?

  18. 18

    S4クラスオブジェクトでの基本的な演算の実装

  19. 19

    S4クラスリストからデータフレームへ

  20. 20

    s4クラスのUUIDgenerate()は、各インスタンスで同じuuidを生成します

  21. 21

    S4クラスで新しいオブジェクトを初期化する方法は?

  22. 22

    Rで動的に作成されたS4クラスの変数をループする

  23. 23

    RでのS4行列のサブセット化

  24. 24

    setメソッドはS4クラスを初期化するか関数を使用するか

  25. 25

    通常のリストのコンポーネントのようにs4クラスのコンポーネントを選択するにはどうすればよいですか?

  26. 26

    別のパッケージにクラス定義があるスロットを使用してS4クラスを定義します

  27. 27

    Roxygen2を使用してS4クラススロットを適切に文書化する方法は?

  28. 28

    RのS4クラスのスロットを自動的に更新する方法

  29. 29

    Rでクラスを作成する:S3、S4、R5(RC)、またはR6?

ホットタグ

アーカイブ