FUN arguments
บ่อยครั้งที่ฟังก์ชันที่ต้องการนำไปใช้จะมี argument แบบ optional อื่น ๆ ที่สามารถปรับแต่งได้ ลองพิจารณาฟังก์ชัน percent_to_decimal() ที่ให้ผู้ใช้ระบุจำนวนตำแหน่งทศนิยมได้
percent_to_decimal(5.4, digits = 3)
[1] 0.054
เมื่อเรียกใช้ lapply() สามารถระบุ named optional arguments ต่อจาก argument FUN ได้ โดย arguments เหล่านั้นจะถูกส่งต่อไปยังฟังก์ชันที่นำไปใช้
my_list
$a
[1] 2.444 3.500
$b
[1] 1.100 2.678 3.450
lapply(my_list, FUN = percent_to_decimal, digits = 4)
$a
[1] 0.0244 0.0350
$b
[1] 0.0110 0.0268 0.0345
ในแบบฝึกหัดนี้ จะได้ขยายความสามารถของฟังก์ชัน Sharpe ratio ให้รับอัตราผลตอบแทนปลอดความเสี่ยง (risk free rate) เป็น argument จากผู้ใช้ได้ แล้วนำฟังก์ชันนี้ไปใช้กับ lapply() โดยมี data frame ของผลตอบแทนรายวันของหุ้น ในรูปทศนิยม ชื่อ stock_return เตรียมไว้ให้แล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลางสำหรับการเงิน
คำแนะนำการฝึกหัด
- ขยายฟังก์ชัน
sharpeให้รับอัตราผลตอบแทนปลอดความเสี่ยงเป็น optional argument โดยกำหนดค่าเริ่มต้นไว้ที่.0003 - ใช้
lapply()กับstock_returnเพื่อคำนวณ Sharpe ratio เมื่ออัตราผลตอบแทนปลอดความเสี่ยงเท่ากับ.0004 - ใช้
lapply()กับstock_returnเพื่อคำนวณ Sharpe ratio เมื่ออัตราผลตอบแทนปลอดความเสี่ยงเท่ากับ.0009
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Extend sharpe() to allow optional argument
sharpe <- function(returns, rf = ___) {
(mean(returns) - ___) / sd(returns)
}
# First lapply()
___
# Second lapply()
___