оператор last.group в SAS - PullRequest
       10

оператор last.group в SAS

2 голосов
/ 16 ноября 2011

У меня есть набор данных, отсортированный по x1 и x2.Для каждого значения x1 я хочу напечатать только последнее значение x2.Как мне это сделать?Было бы что-то вроде:

if last.x2 then print;

Ответы [ 3 ]

5 голосов
/ 16 ноября 2011

Вы правы, что можете использовать оператор last, но вы не можете использовать его в операторе печати. Попробуйте это:

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

proc print data=tmp; run;
3 голосов
/ 16 ноября 2011

Ици был близок, но оператор LAST необходимо изменить, чтобы он ссылался на X1, как показано ниже:

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

proc print data=tmp; run;
0 голосов
/ 16 ноября 2011

При этом будет напечатана одна строка с наибольшим значением 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;

Обратите внимание, что при наличии нескольких строк с наибольшим значением будет напечатана только одна из них.

...