DATA Step, Macro, Functions and more

help sum calculation by patient id

Accepted Solution Solved
Reply
Contributor
Posts: 29
Accepted Solution

help sum calculation by patient id

Hi I need help with calculating the sum of observation by ID

 

My data look like this;

 

ID   drug  day_supply

1     A       30

1     A       30

1     B      10

2     B      15

2     B      15

2     B      15

 

I want to create a variable that sums up the day_supply

ID   drug    Total_day_supply

1     A                       60

1     B                       10

2     B                       45

 

 

Thanks in advance!


Accepted Solutions
Solution
‎11-22-2017 07:01 AM
Super User
Posts: 8,214

Re: help sum calculation by patient id

[ Edited ]

Alternatively, you could use proc summary:

data have;
  input ID   drug $ day_supply;
  cards;
1     A       30
1     A       30
1     B      10
2     B      15
2     B      15
2     B      15
;

proc summary data=have;
  var day_supply;
  by id drug;
  output out=want (drop=_:) sum=total_day_supply;
run;

Art, CEO, AnalystFinder.com

 

View solution in original post


All Replies
PROC Star
Posts: 549

Re: help sum calculation by patient id

something like this

proc sql;
create table newtable as
select id, drug, sum(day_supply) as total_day_supply
from yourtable
group by id, drug;
quit;
Solution
‎11-22-2017 07:01 AM
Super User
Posts: 8,214

Re: help sum calculation by patient id

[ Edited ]

Alternatively, you could use proc summary:

data have;
  input ID   drug $ day_supply;
  cards;
1     A       30
1     A       30
1     B      10
2     B      15
2     B      15
2     B      15
;

proc summary data=have;
  var day_supply;
  by id drug;
  output out=want (drop=_:) sum=total_day_supply;
run;

Art, CEO, AnalystFinder.com

 

Contributor
Posts: 29

Re: help sum calculation by patient id

Thanks you all for providing the answers.

☑ This topic is solved.

Need further help from the community? Please ask a new question.

Discussion stats
  • 3 replies
  • 134 views
  • 0 likes
  • 3 in conversation