我是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(3×6)矩陣/數組,但我得到這個錯誤
###### 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
我在做什麼錯?我如何得到理想的答案?
請幫忙。
問候
ķ
需要進行向量化'bp'使得如果'y'和'N'具有相同的長度,然後'bp的(Y,N,CV,FV,頻率)的矢量'給出了載體還的相同的長度。 – 2012-02-05 19:13:39
'外部'只適用於'vectorized'功能。你的功能不是,這就是失敗的原因。 – Ramnath 2012-02-05 19:17:45