How to add the sum of a variable into the data set for every record

Reply
New Contributor
Posts: 2

How to add the sum of a variable into the data set for every record

[ Edited ]

I have data

id

1

2

3

 

Required output is

id   id_1

1    6

2    6

3    6

 

where 6= sum of id's

 

SAS Super FREQ
Posts: 810

Re: How to get?

[ Edited ]

Interesting idea to sum up ID's.

 

If you know about SQL, you can use Proc SQL to solve this.

 

There are for sure other ways using DATA Step programming or using a Proc such as MEANS.

 

SQL sample:

data have;
  infile cards;
  input id;
cards;
1
2
3
;

proc sql;
  select
    id
    , (select sum(id) from have) as id_1
  from
    have
  ;
quit;

 

For next time: please provide a better subject line for the post, so that we have more information already in the title.

 

Find More information here

https://communities.sas.com/t5/Getting-Started/How-to-get-fast-helpful-answers/ta-p/226133/jump-to/f...

Super User
Posts: 23,343

Re: How to add the sum of a variable into the data set for every record

@Sunny4 note that I've modified your subject line to be more descriptive of your question.

PROC Star
Posts: 8,150

Re: How to add the sum of a variable into the data set for every record

Here is one proc+datastep method:

data have;
  input id;
  datalines;
1
2
3
;

proc summary data=have;
  var id;
  output out=sum (drop=_:) sum=id_1;
run;

data want;
  set have;
  if _n_ eq 1 then set sum;
run;

Art, CEO, AnalystFinder.com

 

Trusted Advisor
Posts: 1,312

Re: How to add the sum of a variable into the data set for every record

And here's a single data step solution.  It's still two passes through the data, but it's a single step.

 

data want;
  set have (in=firstpass)
      have (in=secondpass);
  if firstpass then sumid+id;
  if secondpass;
run;
Ask a Question
Discussion stats
  • 4 replies
  • 193 views
  • 3 likes
  • 5 in conversation