BookmarkSubscribeRSS Feed
sahoositaram555
Pyrite | Level 9

data xyz;

input var1 var2;

monday 13

monday 12

total .  

tuesday 10

tuesday 23

total .

wednesday 34

wednesday 43

total .

run;

 

how to get the sum of by using var1 and place the results for total rows in var2 in data step?

i.e. no proc procedure/proc sql i shall use to get the answer.

6 REPLIES 6
PaigeMiller
Diamond | Level 26

Typically, this is not a good idea to store these sums in a SAS data set in the same column as the raw data. Better would be to have these results in a report of some type, or put the sums in a different column. Do you have a preference?

--
Paige Miller
sahoositaram555
Pyrite | Level 9
@PaigeMiller, at the moment the data structure is like this and it would be great if i get help to find a solution for a sum value for the total row which makes the further downstream work much easier.
PaigeMiller
Diamond | Level 26

Putting a sum in the same column as the raw data will make downstream work more difficult. Unless you already have downstream code that requires the data be in this layout.

--
Paige Miller
sahoositaram555
Pyrite | Level 9
It's fine if the sum value is coming in a new column along with the prerequisite values, but the intention is not to disturb the rows. i.e. basically for monday,
monday 13 13
monday 12 12
tuesday . 25
something like above would work too!
PaigeMiller
Diamond | Level 26
proc sql;
     create table want as select *,sum(var2) as sum_var2
     from have
     group by var1;
run;
--
Paige Miller
Tom
Super User Tom
Super User

PROC SUMMARY (aka MEANS) is best tool for calculating sums.

data xyz;
  input var1 :$9. var2;
cards;
monday 13
monday 12
tuesday 10
tuesday 23
wednesday 34
wednesday 43
;

proc summary data=xyz nway;
  class var1;
  var var2;
  output out=total sum=;
run;

data want;
  set xyz total;
  by var1;
run;

Note that I purposely left the _TYPE_ and _FREQ_ variables that PROC SUMMARY added in the dataset so you can tell which observations are the totals.

Tom_0-1721836390660.png

 

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
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.

Click image to register for webinarClick image to register for webinar

Classroom Training Available!

Select SAS Training centers are offering in-person courses. View upcoming courses for:

View all other training opportunities.

Discussion stats
  • 6 replies
  • 146 views
  • 2 likes
  • 3 in conversation