Я новичок в 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
Что я делаю не так? И как мне получить желаемый ответ?
Пожалуйста, помогите.
привет
K