SAS中的last.group语句
我有一个按x1和x2排序的数据集。对于x1的每个值,我只想打印x2的最后一个值。我该怎么做?会不会是这样的: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
如果是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值。