1. ホーム
  2. oop

[解決済み] R:スロットとは何ですか?

2023-05-31 14:28:53

質問

Rでスロットが何であるか知っている人はいますか?

その意味の説明は見つかりませんでした。再帰的な定義があります。 スロット関数は、オブジェクトの個々のスロットに関する情報を返すか設定します。

ヘルプは感謝されるでしょう。 ありがとうございます。 アレイ

どのように解決するのですか?

スロットは、S4オブジェクトにリンクされています。スロットは、オブジェクトの部品、要素、またはプロパティとして見ることができます。たとえば、車のオブジェクトがあった場合、スロットとして、価格、ドアの数、エンジンのタイプ、走行距離などを指定できます。

内部的にはリストで表現されます。例として.

setClass("Car",representation=representation(
   price = "numeric",
   numberDoors="numeric",
   typeEngine="character",
   mileage="numeric"
))
aCar <- new("Car",price=20000,numberDoors=4,typeEngine="V6",mileage=143)

> aCar
An object of class "Car"
Slot "price":
[1] 20000

Slot "numberDoors":
[1] 4

Slot "typeEngine":
[1] "V6"

Slot "mileage":
[1] 143

ここで、price, numberDoors, typeEngine, mileageはS4クラス "Car"のスロットです。これは些細な例で、実際にはスロット自体が再び複雑なオブジェクトになる可能性があります。

スロットは多くの方法でアクセスすることができます。

> aCar@price
[1] 20000
> slot(aCar,"typeEngine")
[1] "V6"    

または特定のメソッドを構築することで実現できます (追加のドキュメントを参照してください)。

S4プログラミングの詳細については この質問 . もしこのコンセプトがまだ漠然としたものに聞こえるなら、オブジェクト指向プログラミングの一般的な紹介が助けになるかもしれません。

PS: データフレームとリストの違いに注意してください。 $ を使用して、名前付きの変数や要素にアクセスします。