単純ループ遍歴テーブルSAS


本プログラムの役割は,テーブル全体を遍歴し,テーブル内のデータを行単位で処理することである.
%let id1=%sysfunc(open(DataTable,i));                 //     ,  id1    
%let _Item_id=%sysfunc(varnum(&id1,Item_id));  //  item_id    
%let _decimal=%sysfunc(varnum(&id1,decimal));  //  decimal    	
%do %while(%sysfunc(fetch(&id1)) eq 0);             //         ,sysfunc(fetch(&id1))   0
    %let  Item_id=%sysfunc(getvarc(&id1,&_Item_id));  //   n     Item_id     ,n id1  
    %let  decimal=%sysfunc(getvarn(&id1,&_decimal));  //   n     decimal     ,n id1  
		
    %put &Item_id  &decimal;  //    
			
    data tmp3_1;
    set tmp3_1;
    if item_id="&Item_id" then Refer_n=round(Refer_n,&decimal);  //    Item_id decimal      
    run;
				 	
%end;  //  do-while  
%let rc=%sysfunc(close(&id1)); //    	

 上記のようなループは通常のSASプログラミングで複数回使用されますので、ここでマークします.