メタデータを返す
関数から複数の情報を返したい一方で、結果に特定のクラス(たとえば data frame や numeric ベクトル)を保たせたい場合、リストで返すのは適切でないことがあります。これは、結果本体に加えて、その結果に関するメタデータを持たせたいときによくあります。(メタデータは「データについてのデータ」です。たとえば、データセットを読み込んだ元ファイル、変数を作成したユーザー名、アルゴリズムが収束するまでの反復回数などが該当します。)
そのような場合は、メタデータを属性に保存できます。属性を代入する構文を思い出しましょう。
attr(object, "attribute_name") <- attribute_value
この演習はコースの一部です
R関数入門
演習の手順
pipeable_plot()を更新し、結果に"formula"という名前の属性を追加し、その値としてformulaを設定します。- 以前に作成した
plt_dist_vs_speedが表示されています。更新後の構造を確認しましょう。
実践的なインタラクティブ演習
このサンプルコードを完成させて、この演習に挑戦してみましょう。
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
___