DATA Step, Macro, Functions and more

Show last obs in a group

Reply
Contributor
Posts: 59

Show last obs in a group

I have totalled a column of numbers

ID         amt            difference

11        -250           125

11         125           125 /*only want to show this number*/

12       -250          -250

proc sql;

create table test as

select id, sum(

case when reg_num = 'w' then amt

        when reg_num = 'y' then amt

   else 0 end)as difference

from main

group by ln_no;

quit;

In the case of ID 11, I want to show the 125 difference in the second instance of the same ID.  So I want to show ID on row 2 and leave row 1 blank.  In the case of ID 12 I want to show the difference because it is the first and only instance.

Super Contributor
Posts: 1,636

Re: Show last obs in a group

Posted in reply to omega1983

data step is much easier:

data have;

input ID         amt            difference;

cards;

11        -250           125

11         125           125

12       -250          -250

;

data want;

set have;

by id;

if not last.id then difference=.;

proc print;run;

Ask a Question
Discussion stats
  • 1 reply
  • 153 views
  • 0 likes
  • 2 in conversation