使用这些SAS代码将生成什么报告

时间:2013-10-07 01:13:15

标签: sas

鉴于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; 我知道数据步骤中发生了什么。 但现在,它似乎有点复杂。

1 个答案:

答案 0 :(得分:1)

TWO将包含来自ONE的记录,这些记录是Y的每个新值的第一条记录,或X的每个新值(如果有的话)记录)。因此,1 A1 B2 A2 B3 B4 A4 C的第一条记录。

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