BookmarkSubscribeRSS Feed
SeanZ
Obsidian | Level 7

I want to get sum of a variable wgt for each date and firm id. I wrote the following simple code, but didn't get what I want. Can someone have a look and let me know what's wrong.

proc sort data=have; by date firm; run;

data want; set have; by date firm; summ=sum(wgt); run;

Thanks.

3 REPLIES 3
Patrick
Opal | Level 21

data want;

set have;

by date firm;

retain summ;

summ=sum(summ,wgt);

if last.firm then

do;

     output;

     call missing(summ);

end;

run;

Jagadishkatam
Amethyst | Level 16

Alternatively,

data want;

set have;

by date firm;

retain summ;

    if first.firm then summ=wgt;

    else summ+wgt;

run;

Thanks,

Jagadish

Thanks,
Jag
Haikuo
Onyx | Level 15

Even less verbose:

data want;

set have;

by date firm;

sum+wgt+(-first.firm*sum);

run;

Haikuo

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 974 views
  • 2 likes
  • 4 in conversation