誰が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:名前付き変数/要素にアクセスするために$
を使用するデータフレームとリストとの違いに注意してください。
names(variable)
が複雑な変数の_$
_でアクセス可能なすべての名前をリストするように、
slotNames(object)
は、オブジェクトのすべてのスロットをリストします。
表示オブジェクトにフィットオブジェクトに含まれるグッズを見つけるのに非常に便利です。
@Jorisが指し示すリソースに加えて、彼自身の答えに加えて、?Classes
。スロットには次のものが含まれます。
Slots:
The data contained in an object from an S4 class is defined
by the _slots_ in the class definition.
Each slot in an object is a component of the object; like
components (that is, elements) of a list, these may be
extracted and set, using the function ‘slot()’ or more often
the operator ‘"@"’. However, they differ from list
components in important ways. First, slots can only be
referred to by name, not by position, and there is no partial
matching of names as with list elements.
....
Rがすべてを再定義しなければならない理由はわかりません。ほとんどの通常のプログラミング言語は、それらを「プロパティ」または「属性」と呼びます。