0

给定 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 一样;如果是第一个.Y; 我知道数据步骤中发生了什么。但现在,它似乎有点复杂。

4

1 回答 1

1

TWO将包含来自ONE的每个新值Y或每个新值X(如果是任何其他记录)的第一条记录的记录。1 A因此, , 1 B, 2 A, 2 B, 3 B, 4 A, 和的第一条记录4 C

基本上,在复合BY语句中,每次变量的值发生变化时,该变量和 by 语句右侧的每个变量都会设置first.为 1(真)。

于 2013-10-07T03:34:23.903 回答