鉴于SAS数据集WORK.ONE:
X Y Z
- - --
1 A 27
1 A 33
1 B 45
2 A 52
2 B 69
3 B 70
4 A 82
4 C 91
提交以下SAS程序:
data WORK.TWO;
set WORK.ONE;
by X Y;
if First.Y;
run;
proc print data=WORK.TWO noobs;
run;
我先不明白。最后。在带有两个变量的by语句之后。 如果是这样的话 由Y; 如果是First.Y; 我知道数据步骤中发生了什么。 但现在,它似乎有点复杂。
答案 0 :(得分:1)
TWO
将包含来自ONE
的记录,这些记录是Y
的每个新值的第一条记录,或X
的每个新值(如果有的话)记录)。因此,1 A
,1 B
,2 A
,2 B
,3 B
,4 A
和4 C
的第一条记录。
基本上,在复合BY
语句中,每次变量的值发生变化时,变量和by语句中右边的每个变量都会将first.
设置为1(真)。