85

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

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

助けていただければ幸いです、ありがとう-路地

4

4 に答える 4

96

スロットは 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:名前付き変数/要素へのアクセスに使用するデータフレームとリストの違いに注意してください。

于 2011-01-17T14:09:06.957 に答える
23

複雑な変数names(variable)のアクセス可能な名前をすべてリストアップするのと同じように、$

slotNames(object)オブジェクトのすべてのスロットを一覧表示します。

fit-object に含まれるグッズを見つけるのに非常に便利です。

于 2011-09-21T17:57:30.040 に答える
13

@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.
      ....
于 2011-01-17T14:42:17.147 に答える