我正在觸摸一些我編寫的SAS代碼,發現我希望更有效地執行一段代碼。我有一個名爲「預測」的時間序列數據集,它只包含日期和給定日期的「預測」變量。SAS:在數據步驟中使用宏變量作爲數字
我寫一個簡單的代碼塊藉此變量和基本上砍它成一系列的變量,每一個代表一個日期:
data forecasts;
set forecasts;
obs=_n_;
array r(241);
do i=1 to dim(r);
if obs=i then r(i)=Forecast;
end; drop i; drop obs; drop forecast;
run;
然而,「R(241)」的一部分這段代碼真的讓我很煩惱。我已經有對應的時候,我需要執行此操作(稱爲「N」)的數量的宏變量,我寧願只是將其插入陣列宣佈直接,是這樣的:
array r(&n)
等
但是,宏變量顯然被認爲是文本,所以即使我設法將宏變量導入到數據步驟中,變量r(& n)也不起作用,因爲它不會讀取'n'作爲數字。除了將整個數據步驟包裝到更廣泛的宏之外,我怎樣才能將'n'拉入數據步驟,然後將其轉換爲數字,以便此操作正常工作?
奇怪的是,我想我什麼都試過了,除了剛剛&N,採用各種過於複雜的呼叫等的使用&N做的工作就好了,對不起,浪費你的時間在那裏。 –