Хтось знає, що таке слот у 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()
функції - вона не призначена для документування того, що таке слот, а лише про те, як отримати до них доступ.