2009-02-18 72 views

回答

3

SAS数据步骤具有内置循环而不是观察值。除非出于某种原因,否则你不必做任何事情。例如,下面的代码为每个观测值生成一个随机数:

data one; 
    set sashelp.class; 
    rannum = ranuni(0); 
run; 

如果你想循环变量,那么就有数组。例如,下面用随机数初始化变量var1至var10:

data one; 
    array vars[1:10] var1-var10; 
    do i = 1 to 10; 
    vars[i] = ranuni(0); 
    end; 
run; 

第一个。最后。使用by语句设置(排序)的数据时,会自动生成标志。举例:

proc sort data=sashelp.class out=class; 
    by age; 
run; 
data one; 
    set class; 
    by age; 
    first = first.age; 
    last = last.age; 
run; 
/* check */ 
proc print data=one; 
run; 
/* on lst 
    Obs Name  Age first last 

    1 Joyce  11  1  0 
    2 Thomas  11  0  1 
    3 James  12  1  0 
    4 Jane  12  0  0 
    5 John  12  0  0 
    6 Louise  12  0  0 
    7 Robert  12  0  1 
    8 Alice  13  1  0 
    ... 
18 William  15  0  1 
19 Philip  16  1  1 
*/ 
相关问题