Een S3-methode maken (1)
De generieke functie doet uit zichzelf niets. Daarvoor moet je methoden maken. Dat zijn gewone functies met twee voorwaarden:
- De naam van de methode moet de vorm
generic.classhebben. - De handtekening van de methode — dus de argumenten die aan de methode worden doorgegeven — moet de handtekening van de generiek bevatten.
De syntaxis is:
generic.class <- function(some, arguments, ...) {
# Do something
}
Deze oefening maakt deel uit van de cursus
Objectgeoriënteerd programmeren met S3 en R6 in R
Oefeninstructies
De generieke functie get_n_elements() is gedefinieerd in je werkruimte.
- Typ de naam (zonder haakjes) om te zien hoe hij werkt.
- Schrijf een S3-methode om het aantal elementen in een
data.frame-object te berekenen.- De functienaam moet de naam van de generiek zijn, dan een
.en vervolgens de naam van de klasse van de input. - De invoerargumenten moeten
xen...zijn. - De functiebody moet uit één regel bestaan die het aantal elementen (rijen keer kolommen) in een data frame retourneert.
- De functienaam moet de naam van de generiek zijn, dan een
- Roep
get_n_elementsaan op desleep-gegevensset (docs) en ken het resultaat toe aan de variabelen_elements_sleep. - Print
n_elements_sleepnaar de console om het resultaat te zien.
Praktische interactieve oefening
Probeer deze oefening eens door deze voorbeeldcode in te vullen.
# 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