2013-10-18 48 views
0

此輸入系列步進完美的作品調試工具 - 通過代碼

Bond.Valuation (bond.id = bondlab10, principal = 1000, price = 100, 
settlement.date = "02-4-2013", trade.date = "1-31-2013") 

這將引發

Bond.Valuation (bond.id = bondlab10, principal = 1000, price = 100, 
settlement.date = "01-5-2013", trade.date = "12-31-2012") 

#Error in Key.Rate.Table[x, 3] = (spotrates("ns", BetaVector, m = Key.Rate.Table[x, 
    : replacement has length zero. 

我想使用調試工具來單步執行代碼中的錯誤,但我不能有很多運氣。當我調試時,我得到以下內容

debug at <tmp>#29: Bond.Term.Structure <<- Key.Rate.Analysis(bond.id = bondlab10, 
Rate.Delta = Rate.Delta, BetaVector = BetaVector, principal = principal, 
price = price, cashflow = Bond.CashFlow) 

我知道函數和行,但我不知道什麼是錯誤的消息。對調試的建議表示讚賞。基本上,我在這裏有一個很長的解決方案,但這是抵押支持證券所必需的。

- 更新,我發現問題,但不是從調試器。有沒有辦法通過每次計算來觀察R步驟並查看值?

+0

我還沒有親自嘗試過它,但有很多關於RStudio的調試設置的討論。谷歌可以在那裏幫助你 –

+5

一般來說,如果你正在調試一個函數,並且它又調用另一個函數,那麼就簡單地調試下一個函數。也就是說,當你在上面的'29'行時,而不是碰到'c/Enter',你會寫'debug(Key.Rate.Analysis)'你也可以使用'debugonce'代替調試 –

回答

0

如果您使用的是Windows,Revolution R對分步調試有很好的支持。它爲R提供了Visual-Studio風格的界面,在變量值上帶有斷點和鼠標懸停。

學術版是免費的。