0

我有一个包含多个属性的数据集,每个属性在主表中每个有 10-15 行。我希望在数据集上使用 do 循环,这将允许我分别提取每个属性的输出。我关心的是,一旦提取了前一个属性的输出,如何在 do 循环中自动选择属性?

提前致谢。

4

1 回答 1

0

我不完全确定您要做什么,但我希望可以展示 do 循环的基本思想。

%macro YOUR_MACRO();
   %let YOUR_VARIABLE = 1 2 3 ...;  /*This could be whatever you want to split up from your master table*/
   %let NUM_VAR = 3; /*Change this to the number of YOUR_VARIABLEs listed*/

   %do i = 1 %to &NUM_VAR. %by 1;
       %let LOOP_VAR = %scan(&YOUR_VARIABLE., %i.);
/*This do i = 1 starts your loop at 1 and goes up by 1 until your NUM_VAR is reached*/

proc sql;
    create table TABLE_&LOOP_VAR. as /*Creates a specific table for each variable*/
    select *
    from MASTER_TABLE
    where COLUMN_NAME = &LOOP_VAR. /*Splits up your table by a certain attribute equaling the loop variable*/
    ;
quit;

%end;
%mend;
%YOUR_MACRO(); /*Runs your loop*/

这是基本结构,应该会有所帮助。您也可以只扫描您的主表中的每个变量名称,然后将其分开,而无需逐个输入。

于 2013-06-27T12:38:12.240 回答