2013-02-05 81 views
1

我有一個數據集,其中包含一段時間內的月度公司債券數據,並且我添加了無風險債券價格曲線的樣條插值30提前一個月。我有一個變量「next_int」,告訴我下一張優惠券有多少個月到期,還有多少個月到期,「mnts_mat」。通過變量循環並累加特定變量以創建新變量

我也有一個優惠券頻率變量「cf」。樣條債券價格列爲var1,var2,...,var360。我想在幾個月內彙總優惠券支付的樣本債券價格。

因此,對於一個月內到期支付利息的債券,並且在一年兩次的優惠券頻率下到期13個月,我想創建一個變量y = var1 + var7 + var13。我現在寫的是這樣的:

data bond2 (DROP=i); 
set bond1; 
by issue_id date; 
y=0 
do i=next_int to mnts_mat by 12/cf; 
y=y+var'i'; 
end; 
run; 

這是行不通的。我也嘗試過創建一個宏,以我爲參數並輸出vari,但這也不起作用。任何幫助真的很感激,在此先感謝。

回答

3

我不太理解這個問題的本質,但這裏的一些指針:

  • 你需要一個分號後,「Y = 0」
  • 它看起來像你需要聲明一個陣列VAR1-var360
  • 一旦你的數組聲明可以參考類似變種[I](不var'i')

[代碼]

data bond2 (DROP=i); 
    set bond1; 
    by issue_id date; 
    array vars var1-var360; 
    y=0; 
    do i=next_int to mnts_mat by 12/cf; 
    y=y+var[i]; 
    end; 
run; 
+0

謝謝!我能夠用數組來完成它。 – user2041459