R: что такое слоты?
кто-нибудь знает, что такое слот в R?
Я не нашел объяснения его значения. Я получаю рекурсивное определение: "Функция Slot возвращает или задает информацию об отдельных слотах объектов"
помощь будет оценили, Спасибо - Аллея
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
здесь цена, количество дверей, тип двигателя и пробег являются слотами класса S4 "автомобиль". Это тривиальный пример, на самом деле сами слоты Могут быть снова сложными объекты.
слоты Могут быть доступны различными способами :
> 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. ....