多個引數(2)
來想個更複雜的例子。你還記得在「Introduction to R for Finance」課程中的「現值(present value)」嗎?如果不記得,可以在這裡回顧該影片:here。概念是:你要用特定的利率把未來會收到的金額折現,換算成以今天的美元計價。以下是一個通用公式:
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轉為小數。 - 執行現值計算。不要將結果存成變數。由於它是最後一行執行,會自動回傳。
- 要求引數:
- 計算在 3 年後收到、利率為 7%、金額為 $1200 的現值。
動手互動練習
試著完成這個範例程式碼,體驗一下這個練習。
# Present value function
pv <- function(___, ___, ___) {
# Discount multiplier
mult <- 1 + ___(i)
# Present value calculation
___ * ___ ^ -___
}
# Calculate a present value
___