Skapa en S3-metod (1)
En generisk funktion gör ingenting på egen hand. För det behöver du skapa metoder, som är vanliga funktioner med två villkor:
- Metodens namn måste ha formen
generic.class. - Metodens signatur – det vill säga de argument som skickas in till metoden – måste innehålla generikens signatur.
Syntaxen är:
generic.class <- function(some, arguments, ...) {
# Do something
}
Den här övningen är en del av kursen
Objektorienterad programmering med S3 och R6 i R
Övningsinstruktioner
Den generiska funktionen get_n_elements() har redan definierats i din arbetsmiljö.
- Skriv dess namn (utan parenteser) för att se hur den fungerar.
- Skriv en S3-metod som beräknar antalet element i ett
data.frame-objekt.- Funktionens namn ska bestå av generikens namn, följt av
.och sedan namnet på indataklassen. - Indataargumenten ska vara
xoch.... - Funktionens kropp ska bestå av en enda rad som returnerar antalet element (rader gånger kolumner) i dataramen.
- Funktionens namn ska bestå av generikens namn, följt av
- Anropa
get_n_elementspå datamängdensleep(dokumentation) och tilldela resultatet till variabelnn_elements_sleep. - Skriv ut
n_elements_sleepi konsolen för att se resultatet.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
# 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