BookmarkSubscribeRSS Feed
🔒 This topic is solved and locked. Need further help from the community? Please sign in and ask a new question.
CharlotteH
Calcite | Level 5

I am trying to carry observations foreward in observations where "number" is three or below. I want to create a new column where observations have been carried foreward and summed, so values in "new_number" are all above three.   

 

HAVE

Age      Number 

20        10

21         2

22         5

23         1

24         1

25         5

 

 

WANT

Age      Number      New_number

20        10               10

21        2                  .

22        5                  7

23        1                  .

24        1                  .

25        5                  7

 

 

 

 

1 ACCEPTED SOLUTION

Accepted Solutions
Astounding
PROC Star

One way:

 

data want;

set have;

running_total + number;

if running_total > 3 then do;

   new_number = running_total;

   running_total = 0;

end;

drop running_total;

run;

View solution in original post

1 REPLY 1
Astounding
PROC Star

One way:

 

data want;

set have;

running_total + number;

if running_total > 3 then do;

   new_number = running_total;

   running_total = 0;

end;

drop running_total;

run;

SAS Innovate 2025: Register Now

Registration is now open for SAS Innovate 2025 , our biggest and most exciting global event of the year! Join us in Orlando, FL, May 6-9.
Sign up by Dec. 31 to get the 2024 rate of just $495.
Register now!

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
  • 1 reply
  • 386 views
  • 0 likes
  • 2 in conversation