Кто-нибудь знает, что такое слот в R?R: какие слоты?
Я не нашел объяснения его значения. Я получаю рекурсивное определение: «возвращает слот функции или набор информации об отдельных пазах объектов»
помощь была бы оценена, Благодарности - Alley
Кто-нибудь знает, что такое слот в R?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 "Car". Это тривиальный пример, в действительности сами слоты могут быть снова сложными объектами.
Слоты можно получить различными способами:
> [email protected]
[1] 20000
> slot(aCar,"typeEngine")
[1] "V6"
или через строительство конкретного метода (см дополнительную документацию).
Подробнее о программировании на S4 см. this question. Если концепция по-прежнему кажется вам неясной, может помочь общее введение в объектно-ориентированное программирование.
PS: Обратите внимание на разницу с данными и списками, в которых вы используете $
для доступа к именованным переменным/элементам.
+1 хороший ответ Йорис. Возможно, вы захотите добавить пример «slot (aCar,« price »)' просто как другое использование, esp, поскольку op смотрел на функцию 'slot()' –
Хорошая идея, Gavin, будет делать. –
Спасибо, ваш ответ был очень полезен !! – user573347
В дополнение к ресурсам @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.
....
Так как names(variable)
списки всех $
-достижима имена сложная переменная, поэтому
slotNames(object)
перечислены все слоты объекта.
Очень удобно обнаруживать, какие предметы, которые подходит для вашего объекта, подходят для вашего удовольствия.
Это из справки по функции 'slot()', это не значит, чтобы документировать, что такое слот, только как получить к ним доступ. –