2013-10-08 37 views
0
data work.totalsales; 
set work.monthlysales(keep = year product sales); 
retain monthsales {12}; 
array monthsales {12}; 
do i = 1 to 12; 
monthsales{i} = sales; 
end; 
count + 1; 
monthsales{count} = sales; 
run; 

我提交這些代碼。但它似乎有語法問題。但是哪裏?這些sas代碼中的語法錯誤是什麼

+0

你想完成什麼?你的代碼還不清楚。 – DomPazz

+0

其實它來自我在書中看到的多項選擇問題。答案是「由於語法錯誤,程序無法執行」。我只是不明白爲什麼。 – zhuoer

回答

1

語法問題是retain語句中的數組樣式名稱。

運行時錯誤可能,因爲count未初始化。如果「monthlysales」中有超過12條記錄,則會在第13條記錄中出現「數組越界」錯誤。

+0

爲什麼我們需要初始化'count'?在開始時沒有設置爲零? – zhuoer

+0

技術上它缺失。問題是您的count變量可能會超過12(當輸入數據集有大於12條記錄時),當您嘗試訪問只有12個元素的數組中的13號槽時會導致運行時錯誤。 – DomPazz