2009-02-18 110 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 
*/ 
相關問題