SAS中的last.group语句

时间:2011-11-16 17:33:03

标签: sas

我有一个按x1和x2排序的数据集。对于x1的每个值,我只想打印x2的最后一个值。我该怎么做呢?它会是这样的:

if last.x2 then print;

3 个答案:

答案 0 :(得分:5)

您可以使用last语句,但不能在打印语句中使用它。试试这个:

data tmp;
 set mydataset;
 by x1 x2;
 if last.x1;
run;

proc print data=tmp; run;

答案 1 :(得分:3)

Itzy很接近,但需要更改LAST语句以引用X1,如下所示:

data tmp;
 set mydataset;
 by x1 x2;
 if last.x1;
run;

proc print data=tmp; run;

答案 2 :(得分:0)

这将打印具有最大值x2的单行。

proc sort data=mydataset;
  by x2;
run;

data tmp;
  set mydataset end=eof;
  if eof then do;
    output;
  end;
run;

proc print data=tmp;
run;

请注意,如果有多个行具有最大值,则只会打印其中一行。