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