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