SAS中的last.group语句

SAS中的last.group语句,sas,Sas,我有一个按x1和x2排序的数据集。对于x1的每个值,我只想打印x2的最后一个值。我该怎么做?会不会是这样的: 如果是last.x2,则打印您是对的,您可以使用最后一条语句,但不能在print语句中使用它。试试这个: data tmp; set mydataset; by x1 x2; if last.x1; run; proc print data=tmp; run; 这将打印最大值为x2的单行 proc sort data=mydataset; by x2; run; data

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


如果是last.x2,则打印

您是对的,您可以使用
最后一条
语句,但不能在print语句中使用它。试试这个:

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

proc print data=tmp; run;

这将打印最大值为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;

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

Itzy已关闭,但最后一条语句需要更改为引用X1,如下所示:

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

proc print data=tmp; run;

那不行。它仍然打印出x1和x2的所有值,而不仅仅是最大值为x2的x1值。