將多個標的合併成單一物件
一種常見做法是先把資料匯入到新的 environment。接著你可以用 eapply() 對該 environment 中的每個物件呼叫某個函式,這與 lapply() 對清單中每個元素的做法很類似。同樣地,eapply() 會回傳一個清單。
然後你可以用 do.call() 把清單中的所有元素合併成一個物件。這就像讓 R 以程式方式幫你輸入並執行指令。與其手動輸入 merge(my_list[[1]], my_list[[2]]], ...),你可以改用 do.call(merge, my_list)。
本練習屬於課程
在 R 匯入與管理金融資料
練習說明
- 使用
eapply()對data_env中的每個物件呼叫head()。將結果指定給data_list。 - 使用
do.call()與merge(),把data_list的所有元素合併為一個名為data_merged的 xts 物件。 - 由於 environment 中的物件沒有順序,無法保證
data_merged的欄位順序。請使用OHLC()重新排序,並將結果存成data_ohlc。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Call head on each object in data_env using eapply
data_list <- ___(data_env, ___)
# Merge all the data_list elements into one xts object
data_merged <- ___(___, data_list)
# Ensure the columns are ordered: open, high, low, close