Just to add another non-macro alternative (not that I think the macro language is a bad choice for this problem), I'm amazed by the magic of what can be done with the hash object. Below hash-splitting is based on example from a Paul Dorfman paper, http://www.lexjansen.com/nesug/nesug09/hw/HW04.pdf 219 *data _null_ step that outputs multiple datatsets ;
220 data _null_ ;
221 if _n_=1 then do ;
222 declare hash h() ;
223 h.definekey ("_n_") ;
224 h.definedata ("store","product","date","buysell","units","price") ;
225 h.definedone () ;
226 end;
227 do _n_ = 1 by 1 until (last.store) ;
228 set have ;
229 by store ;
230 h.add() ;
231 end ;
232 h.output (dataset: cats("Store_",store) ) ;
233 h.clear() ;
234 run ;
NOTE: The data set WORK.STORE_1 has 4 observations and 6 variables.
NOTE: The data set WORK.STORE_2 has 5 observations and 6 variables.
NOTE: There were 9 observations read from the data set WORK.HAVE.
... View more