Returnera metadata
Ibland vill du returnera flera saker från en funktion, men resultatet ska ha en viss klass – till exempel en dataram eller en numerisk vektor – och då passar inte en lista. Det här är vanligt när du har ett resultat tillsammans med metadata om resultatet. (Metadata är "data om data". Det kan till exempel vara filen som en datamängd laddades från, användarnamnet på den som skapade variabeln, eller antalet iterationer det tog för en algoritm att konvergera.)
I sådana fall kan du lagra metadata i attribut. Syntaxen för att tilldela attribut ser ut så här.
attr(object, "attribute_name") <- attribute_value
Den här övningen är en del av kursen
Introduktion till att skriva funktioner i R
Övningsinstruktioner
- Uppdatera
pipeable_plot()så att resultatet har ett attribut med namnet"formula"och värdet avformula. plt_dist_vs_speed, som du skapade tidigare, visas. Undersök dess uppdaterade struktur.
Interaktiv övning med praktiskt arbete
Testa den här övningen genom att slutföra den här exempelkoden.
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
___