R: что такое слоты?
кто-нибудь знает, что такое слот в R?
Я не нашел объяснения его значения. Я получаю рекурсивное определение: "Функция Slot возвращает или задает информацию об отдельных слотах объектов"
помощь будет оценили, Спасибо - Аллея!--1-->
3 ответов
слоты связаны с объектами 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 и пробег слоты класса автомобиля С4"". Это тривиальный пример, на самом деле слоты сами по себе могут быть снова сложными объекты.
слоты Могут быть доступны различными способами :
> aCar@price
[1] 20000
> slot(aCar,"typeEngine")
[1] "V6"
или через конструкцию специфического метода (см. дополнительную документацию).
подробнее о программировании S4 см. этот вопрос. Если концепция все еще звучит расплывчато для вас, общее введение в объектно-ориентированное программирование может помочь.
PS: обратите внимание на разницу с фреймами данных и списками, где вы используете $
для доступа к именованным переменным / элементам.
как names(variable)
списки все $
- доступные имена комплексной переменной, так что тоже
slotNames(object)
список всех слотов объекта.
очень удобно узнать, какие лакомства ваш fit-объект содержит для вашего удовольствия от просмотра.
в дополнение к ресурсам @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.
....