針對清單使用 lapply()
你將學到的 apply 家族中的第一個函式是 lapply(),也就是「list apply」的縮寫。當你有一個清單,並想把同一個函式套用到清單中的每個元素時,lapply() 是一個不錯的做法,而且它一定會回傳另一個清單。這要怎麼做呢?
我們來看一個簡單的例子。假設你想找出下面這個清單中每個向量的長度。
my_list
$a
[1] 2 4 5
$b
[1] 10 14 5 3 4 5 6
# 使用 lapply
# 注意呼叫 length 時不需要加上括號
lapply(my_list, FUN = length)
$a
[1] 3
$b
[1] 7
就像影片裡提到的,如果你一開始想到要對清單的每個元素進行迴圈,並在每次疊代時使用 length(),這也沒有錯。lapply() 是這類迴圈的向量化版本,在 R 的世界裡通常更受青睞(而且更簡單)。
已提供一個以「百分比」表示的每日股票報酬清單 stock_return,以及 percent_to_decimal() 函式。
本練習屬於課程
R 金融中級
練習說明
- 列印
stock_return。 - 完成
lapply(),把percent_to_decimal()套用到stock_return中的每個元素。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Print stock_return
___
# lapply to change percents to decimal
lapply(___, FUN = ___)