อาร์กิวเมนต์หลายตัว (2)
ลองมาดูตัวอย่างที่ซับซ้อนขึ้นกัน คุณจำ มูลค่าปัจจุบัน (present value) จากคอร์ส Introduction to R for Finance ได้ไหม? ถ้าต้องการทบทวน สามารถดูวิดีโอได้ที่นี่ แนวคิดคือการลดมูลค่าของเงินที่จะได้รับในอนาคตโดยใช้อัตราดอกเบี้ยที่กำหนด เพื่อแสดงให้เห็นว่าเงินนั้นมีมูลค่าเท่าใดในวันนี้ สูตรทั่วไปที่ใช้สำหรับการคำนวณนี้คือ:
present_value <- cash_flow * (1 + i / 100) ^ -year
จะดีแค่ไหนถ้ามีฟังก์ชันที่คำนวณสิ่งนี้ให้อัตโนมัติ? เช่น:
present_value <- pv(cash_flow, i, year)
ฟังก์ชันนี้ควรทำงานได้ทั้งเมื่อส่งค่าตัวเลขเดี่ยว เช่น pv(1500, 5, 2) และเมื่อส่งเวกเตอร์ที่มีความยาวเท่ากัน เพื่อคำนวณเวกเตอร์มูลค่าปัจจุบันทั้งหมดในครั้งเดียว!
ฟังก์ชัน percent_to_decimal() พร้อมให้ใช้งานแล้ว
แบบฝึกหัดนี้เป็นส่วนหนึ่งของหลักสูตร
R ระดับกลางสำหรับการเงิน
คำแนะนำการฝึกหัด
- เติมส่วนที่ขาดหายในฟังก์ชันให้ทำงานดังนี้:
- กำหนดอาร์กิวเมนต์:
cash_flow,i,year - สร้างตัวคูณลดมูลค่า:
(1 + i / 100)โดยใช้ฟังก์ชันpercent_to_decimal()เพื่อแปลงiให้เป็นทศนิยม - ทำการคำนวณมูลค่าปัจจุบัน โดยไม่ต้องเก็บผลลัพธ์ไว้ในตัวแปร เนื่องจากเป็นบรรทัดสุดท้ายที่รัน ค่าจะถูก return โดยอัตโนมัติ
- กำหนดอาร์กิวเมนต์:
- คำนวณมูลค่าปัจจุบันของเงิน $1,200 ที่อัตราดอกเบี้ย 7% และจะได้รับใน 3 ปีข้างหน้า
แบบฝึกหัดเชิงโต้ตอบแบบลงมือทำ
ลองทำแบบฝึกหัดนี้โดยเติมโค้ดตัวอย่างนี้ให้สมบูรณ์
# Present value function
pv <- function(___, ___, ___) {
# Discount multiplier
mult <- 1 + ___(i)
# Present value calculation
___ * ___ ^ -___
}
# Calculate a present value
___