我是 R 的新手,试图理解向量处理方式而不是循环方式。我需要有关如何使用外部函数和用户定义函数创建值表的帮助。
以下是一个简单的函数,给出了普通债券的价格
bp = function(y, n=1, c=0, fv=100, freq=2){
per = 1:(n*freq)
cf = rep(c/freq, n*freq)
cf[length(cf)] = cf[length(cf)] + fv
df = 1/(1+y/freq)^per
cf %*% df
}
我想为收益率向量、n 和给定的 c 值创建一个债券价格表。就像是
ylds = c(0.05, 0.07, 0.08)
n = c(1, 5, 10, 15, 20,30)
price_table = outer(ylds, n, bp, c=9)
我预计有 18 个价格 (3x6) 的矩阵/数组,但出现此错误
###### Start of Error Message
Error in rep(c/freq, n * freq) : invalid 'times' argument
In addition: Warning message:
In 1:(n * freq) : numerical expression has 18 elements: only the first used
#### End of Error Message
我究竟做错了什么?我怎样才能得到想要的答案?
请帮忙。
regards
K