我们如何在sas数据集中进行条件迭代

问题描述:

我们如何在sas数据集中进行迭代。 例如,我选择了第一个。的变量。 并且想要查找特定条件的发生并在满足时设置一个值我们如何在sas数据集中进行条件迭代

+0

请更多信息......可能是一个具体的例子 – AFHood 2009-02-18 16:55:27

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 
*/