2015-06-22 43 views
0

創建新的數據集,我有以下代碼:嘗試使用宏SAS

   %macro One (Data=, City=); 
       data &data; 
       set Dataset1; 
       Var_new=.; 
       if State = "CA" and CITYCODE = &City then output; 
       run; 
       %mend One; 
       %One (Data=Bakersfield_CA, City=12540); 
       %One (Data=Chico_CA   City=17020); 

我得到的第一個數據集Bakersfield_CA..but我得到的錯誤,第二次運行宏,我不明白任何名爲「CHico_CA」的數據集。

回答

1

您在第二次宏調用中缺少逗號。嘗試

%One (Data=Bakersfield_CA, City=12540); 
%One (Data=Chico_CA,   City=17020); 

儘管如此,創建大量這樣的小數據集是一個壞主意,因爲它會讓您的代碼比必要的複雜得多。你想爲每個城市做什麼?你可以用你的原始dataset1做同樣的事情,使用分組處理。

+0

謝謝......我會試試看,我試圖爲每個城市創建一個單獨的數據集,因爲我將使用不同的ODS數據集來將某些信息輸出到excel。 – user2916331

+0

您仍然可能不需要每個城市都有一個單獨的數據集,您可以編寫ODS代碼,每次讀取相同的數據集,但使用不同的where條件,例如 – user667489

+0

您能舉個例子嗎? – user2916331