Czy ktoś wie, co to jest automat w R?
Nie znalazłem wyjaśnienia jego znaczenia. Otrzymuję definicję rekurencyjną: „Funkcja Slot zwraca lub ustawia informacje o poszczególnych gniazdach obiektów”
Pomoc byłaby doceniona, Dzięki - Alley
Czy ktoś wie, co to jest automat w R?
Nie znalazłem wyjaśnienia jego znaczenia. Otrzymuję definicję rekurencyjną: „Funkcja Slot zwraca lub ustawia informacje o poszczególnych gniazdach obiektów”
Pomoc byłaby doceniona, Dzięki - Alley
Odpowiedzi:
Gniazda są połączone z obiektami S4. Szczelina może być postrzegana jako część, element lub „właściwość” obiektu. Powiedzmy, że masz samochód, wtedy możesz mieć sloty „cena”, „liczba drzwi”, „typ silnika”, „przebieg”.
Wewnętrznie jest to lista. Przykład :
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
Tutaj cena, liczbaDrzwi, typSilnik i przebieg to gniazda klasy S4 „Samochód”. To trywialny przykład, w rzeczywistości same gniazda mogą być ponownie złożonymi obiektami.
Do automatów można uzyskać dostęp na wiele sposobów:
> aCar@price
[1] 20000
> slot(aCar,"typeEngine")
[1] "V6"
lub poprzez budowę określonej metody (patrz dodatkowa dokumentacja).
Więcej informacji na temat programowania S4 można znaleźć w tym pytaniu . Jeśli ta koncepcja nadal brzmi dla ciebie niejasno, pomocne może być ogólne wprowadzenie do programowania obiektowego.
PS: Zwróć uwagę na różnicę w ramkach danych i listach, w których $
uzyskujesz dostęp do nazwanych zmiennych / elementów.
slot(aCar, "price")
tak jak innego wykorzystania, esp jako op patrzył na slot()
funkcję
getSlots()
lub slotNames()
dla ich nazw.
Oprócz zasobów, na które wskazuje @Joris, a także jego własnej odpowiedzi, spróbuj przeczytać ?Classes
, który zawiera następujące informacje na temat slotów:
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.
....
Nie mam pojęcia, dlaczego R musi wszystko przedefiniować. Większość normalnych języków programowania nazywa je „właściwościami” lub „atrybutami”.
slot()
funkcji - nie ma ona dokumentować, czym jest gniazdo, tylko jak uzyskać do nich dostęp.