Слоты связаны с объектами 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
Здесь цена, количество дверей, тип двигателя и пробег являются слотами класса S4 «Автомобиль». Это тривиальный пример, в действительности сами слоты снова могут быть сложными объектами.
Слоты могут быть доступны различными способами:
> aCar@price
[1] 20000
> slot(aCar,"typeEngine")
[1] "V6"
или путем создания определенного метода (см. Дополнительную документацию).
Подробнее о программировании на S4 см. этот вопрос . Если эта концепция все еще кажется вам неопределенной, может помочь общее введение в объектно-ориентированное программирование.
PS: обратите внимание на разницу с кадрами данных и списками, где вы используете $
для доступа к именованным переменным / элементам.