Aan de slagGa gratis aan de slag

Metadata retourneren

Soms wil je meerdere dingen uit een functie teruggeven, maar moet het resultaat een specifieke klasse hebben (bijvoorbeeld een data frame of een numerieke vector), waardoor een lijst teruggeven niet geschikt is. Dit komt vaak voor wanneer je een resultaat hebt plus metadata over dat resultaat. (Metadata is "data over de data". Het kan bijvoorbeeld het bestand zijn waaruit een gegevensset is ingeladen, de gebruikersnaam van de persoon die de variabele heeft aangemaakt, of het aantal iteraties dat een algoritme nodig had om te convergeren.)

In dat geval kun je de metadata opslaan in attributen. Herinner je de syntaxis voor het toekennen van attributen als volgt.

attr(object, "attribute_name") <- attribute_value

Deze oefening maakt deel uit van de cursus

Introductie tot functies schrijven in R

Cursus bekijken

Oefeninstructies

  • Werk pipeable_plot() bij zodat het resultaat een attribuut met de naam "formula" heeft met de waarde van formula.
  • plt_dist_vs_speed, dat je eerder hebt gemaakt, wordt getoond. Bekijk de bijgewerkte structuur.

Praktische interactieve oefening

Probeer deze oefening eens door deze voorbeeldcode in te vullen.

pipeable_plot <- function(data, formula) {
  plot(formula, data)
  # Add a "formula" attribute to data
  ___ <- ___
  invisible(data)
}

# From previous exercise
plt_dist_vs_speed <- cars %>% 
  pipeable_plot(dist ~ speed)

# Examine the structure of the result
___
Code bewerken en uitvoeren