เริ่มต้นใช้งานเริ่มต้นใช้งานได้ฟรี

sapply() vs. lapply()

lapply() มีประโยชน์มาก แต่บางครั้งอาจต้องการให้ข้อมูลที่ได้กลับมาอยู่ในรูปแบบที่เรียบร้อยกว่า list ตัวอย่างเช่น สำหรับ sharpe ratio จะดีกว่าไหมถ้าผลลัพธ์ที่ได้เป็น vector แทนที่จะเป็น list? การวิเคราะห์ต่อจากนั้นก็จะทำได้ง่ายขึ้นมาก!

สำหรับกรณีนี้ ลองพิจารณาใช้ sapply() หรือ simplify apply ซึ่งทำงานเหมือน lapply() ทุกประการ แต่จะพยายามทำให้ผลลัพธ์เรียบง่ายขึ้นหากทำได้ ไวยากรณ์พื้นฐานเหมือนกัน โดยมีอาร์กิวเมนต์เพิ่มเติมดังนี้:

sapply(X, FUN, ..., simplify = TRUE, USE.NAMES = TRUE)

อาร์กิวเมนต์เพิ่มเติมเหล่านี้ให้ระบุได้ว่าต้องการให้ sapply() พยายามทำให้ผลลัพธ์เรียบง่ายขึ้นหรือไม่ และต้องการให้ใช้ชื่อของออบเจกต์ในผลลัพธ์หรือเปล่า

ในแบบฝึกหัดนี้ จะได้คำนวณ sharpe ratio อีกครั้งโดยใช้ sapply() เพื่อทำให้ผลลัพธ์เรียบง่ายขึ้น โดยมี stock_return และฟังก์ชัน sharpe เตรียมไว้ให้แล้ว

แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร

R ระดับกลางสำหรับการเงิน

ดูคอร์ส

คำแนะนำการฝึกหัด

  • ใช้ lapply() กับ stock_return เพื่อคำนวณ sharpe ratio อีกครั้ง
  • จากนั้นใช้ sapply() กับ stock_return เพื่อดูผลลัพธ์ sharpe ratio ที่ถูกทำให้เรียบง่ายขึ้น
  • ใช้ sapply() กับ stock_return เพื่อคำนวณ sharpe ratio โดยระบุอาร์กิวเมนต์ simplify = FALSE และ USE.NAMES = FALSE ซึ่งให้ผลเหมือนกับการใช้ lapply() เลย!

แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ

ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์

# lapply() on stock_return
___

# sapply() on stock_return
___

# sapply() on stock_return with optional arguments
___
แก้ไขและรันโค้ด