Eine S3-Methode erstellen (1)
Für sich genommen macht die generische Funktion noch nichts. Damit sie etwas tut, musst du Methoden erstellen. Das sind ganz normale Funktionen mit zwei Bedingungen:
- Der Name der Methode muss die Form
generic.classhaben. - Die Methodensignatur – also die Argumente, die an die Methode übergeben werden – muss die Signatur der generischen Funktion enthalten.
Die Syntax ist:
generic.class <- function(some, arguments, ...) {
# Do something
}
Diese Übung ist Teil des Kurses
Objektorientierte Programmierung mit S3 und R6 in R
Anleitung zur Übung
Die generische Funktion get_n_elements() ist in deinem Workspace definiert.
- Gib ihren Namen (ohne Klammern) ein, um zu sehen, wie sie funktioniert.
- Schreib eine S3-Methode, die die Anzahl der Elemente in einem
data.frame-Objekt berechnet.- Der Funktionsname sollte aus dem Namen der generischen Funktion bestehen, dann ein
.und dann der Klassenname der Eingabe. - Die Eingabeargumente sollten
xund...sein. - Der Funktionskörper sollte eine einzelne Zeile sein, die die Anzahl der Elemente (Zeilen mal Spalten) in einem Data Frame zurückgibt.
- Der Funktionsname sollte aus dem Namen der generischen Funktion bestehen, dann ein
- Rufe
get_n_elementsauf dem Datensatzsleep(docs) auf und weise das Ergebnis der Variablenn_elements_sleepzu. - Gib
n_elements_sleepin der Konsole aus, um das Ergebnis zu sehen.
Interaktive Übung
Vervollständige den Beispielcode, um diese Übung erfolgreich abzuschließen.
# View get_n_elements
get_n_elements
# Create a data.frame method for get_n_elements
___ <- ___
# Call the method on the sleep dataset
n_elements_sleep <- ___
# View the result
n_elements_sleep