lapply() กับลิสต์
ฟังก์ชันแรกในตระกูล apply ที่จะได้เรียนคือ lapply() ซึ่งย่อมาจาก "list apply" เมื่อมีลิสต์และต้องการนำฟังก์ชันเดียวกันไปใช้กับทุกองค์ประกอบในลิสต์ lapply() คือตัวเลือกที่เหมาะสม โดยจะคืนค่ากลับมาเป็นลิสต์เสมอ
มาดูตัวอย่างง่ายๆ กัน สมมติว่าต้องการหาความยาวของแต่ละเวกเตอร์ในลิสต์ต่อไปนี้
my_list
$a
[1] 2 4 5
$b
[1] 10 14 5 3 4 5 6
# Using lapply
# Note that you don't need parenthesis when calling 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 = ___)