我有一个fibo.seq函数,并尝试编写一个带有三个参数的程序:一个叫做n(没有默认值),一个叫做i(没有默认值),还有一个叫做called (默认值设置为TRUE)。假设n≥3。
N个付款流的现值F1,F2,…,Fn,其中第k次支付Fk对应于斐波那契序列中的第k个数字(1≤k≤n),并且其中以规则的时间间隔进行支付。
每期有效利率等于参数i。例如:如果为i=0.05,则每期有效利率为5%。
如果参数为arrears=TRUE,则第一次付款发生在第一个周期的末尾。否则,第一次付款会立即发生。
我可以为斐波那契数列调用一个函数(例如fibo.seq)
澄清(2020年3月10日增加):fibo.PV必须返回支付的总现值(即单个数字)。
我们可以使用年金吗?
fibo.PV <- function(n, i, arrears=TRUE) {
if (arrears) {
PV <- numeric(n)
PV <- annuity(i=0.05, n=5, type="immediately")
} else {
PV <- annuity(i=0.06/12, n=5*12)
}
return(PV)
}发布于 2020-10-08 11:54:14
这段代码应该足以让您创建函数
library(tidyverse)
i <- .05
# Data frame with cash flows
df <- tibble(
fibo = fibo.seq(length) ) %>%
mutate(index = row_number(),
flow = fibo/(1+i)^(index))
# calculate PV
df %>%
summarise(pv = sum(flow, na.rm = TRUE))https://stackoverflow.com/questions/64254682
复制相似问题