Help using Base SAS procedures

How to sum across

Accepted Solution Solved
Reply
Occasional Contributor
Posts: 6
Accepted Solution

How to sum across

How i need to sum first column with another column across?

i mean this:

Untitled.png

data stock;
input Astock  Bstock;
cards;
500 250
200 658
300 425
400 125
;
run;

data sum;
set stock;
sum=sum(Astock,Bstock);
run;

How i need to change it ?


Accepted Solutions
Solution
‎05-04-2017 03:54 PM
PROC Star
Posts: 768

Re: How to sum across

Like this?

 

data stock;
input Astock  Bstock;
cards;
500 250
200 658
300 425
400 125
;
run;

data want;
   set stock;

   lag_Astock = lag1(Astock);
   if not missing(lag_Astock) then total = sum(Bstock,lag_Astock);

   drop lag_Astock;
run;

View solution in original post


All Replies
Solution
‎05-04-2017 03:54 PM
PROC Star
Posts: 768

Re: How to sum across

Like this?

 

data stock;
input Astock  Bstock;
cards;
500 250
200 658
300 425
400 125
;
run;

data want;
   set stock;

   lag_Astock = lag1(Astock);
   if not missing(lag_Astock) then total = sum(Bstock,lag_Astock);

   drop lag_Astock;
run;
Occasional Contributor
Posts: 6

Re: How to sum across

Thanks !!
Occasional Contributor
Posts: 6

Re: How to sum across

One more question :

If i have 

45.png

 

And i need to find average of three variables and write to next, but first meaning is missing, so i don't need that;;

data numbers;
input A;
cards;
500
400
300
200
800
200
;
run;

data mean;
set numbers;
first = lag(A);
second=lag2(A);
third=lag3(A);
if _n_ ge 3 then mean= mean(of first,second,third);
final=lag1(mean);
run;

but first of all it find mean of    missing value+500+400/3=300

 

How to change ?

 

Super User
Posts: 11,343

Re: How to sum across

If you want a value to be counted in the denominator (3) then there must be a value in the numerator. which would have to be 0 if I understand what you are attempting if you want to use the MEAN function.

 

Or

mean = sum(of first,second,third) / 3;

 

When you start getting to complicated requirements to use values that are not in your data then you will have to provide the values using your business logic.

☑ This topic is solved.

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

Discussion stats
  • 4 replies
  • 169 views
  • 1 like
  • 3 in conversation