Кто-нибудь знает, что такое слот в R?
Я не нашел объяснения его значения. Получаю рекурсивное определение: «Функция слота возвращает или устанавливает информацию об отдельных слотах объекта»
Помощь будет признательна, спасибо - Аллея
Кто-нибудь знает, что такое слот в R?
Я не нашел объяснения его значения. Получаю рекурсивное определение: «Функция слота возвращает или устанавливает информацию об отдельных слотах объекта»
Помощь будет признательна, спасибо - Аллея
Ответы:
Слоты связаны с объектами 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: Обратите внимание на разницу с фреймами данных и списками, которые вы используете $
для доступа к именованным переменным / элементам.
slot(aCar, "price")
же другого использования, особенно когда операционист рассматривал slot()
функцию
getSlots()
или slotNames()
их названия.
В дополнение к ресурсам, на которые указывает @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.
....
Понятия не имею, почему R должен все переопределять. Большинство нормальных языков программирования называют их «свойствами» или «атрибутами».
slot()
функции - она не предназначена для документирования того, что такое слот, а только для того, как получить к ним доступ.