Retornando metadados
Às vezes você quer retornar várias coisas de uma função, mas também quer que o resultado tenha uma classe específica (por exemplo, um data frame ou um vetor numérico), então retornar uma lista não é apropriado. Isso é comum quando você tem um resultado mais metadados sobre esse resultado. (Metadados são “dados sobre os dados”. Por exemplo, pode ser o arquivo de onde um conjunto de dados foi carregado, o nome de usuário de quem criou a variável ou o número de iterações para um algoritmo convergir.)
Nesse caso, você pode armazenar os metadados em atributos. Lembre-se de que a sintaxe para atribuir atributos é a seguinte.
attr(object, "attribute_name") <- attribute_value
Este exercício faz parte do curso
Introdução à Escrita de Funções em R
Instruções do exercício
- Atualize
pipeable_plot()para que o resultado tenha um atributo chamado"formula"com o valor deformula. plt_dist_vs_speed, que você criou anteriormente, é exibido. Examine sua estrutura atualizada.
Exercício interativo prático
Experimente este exercício completando este código de exemplo.
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
___