回傳中繼資料
有時候你想從函式回傳多個東西,但你又希望結果有特定的類別(例如 data frame 或 numeric 向量),這時回傳 list 就不合適。當你同時有主要結果與關於該結果的中繼資料時,這種情況很常見。(中繼資料是「關於資料的資料」。例如資料集是從哪個檔案載入的、建立該變數的使用者名稱、或是某個演算法收斂所需的迭代次數等。)
這種情況下,你可以把中繼資料存放在屬性裡。回想一下指定屬性的語法如下:
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
___