我们如何在 sas 数据集中进行迭代。例如我选择了第一个。的一个变量。并希望找到特定条件的出现并在满足时设置一个值
Tommy
问问题
1845 次
1 回答
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
*/
于 2009-02-21T05:57:37.660 回答