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

Hi all,

 

I have the following data in my input dataset.

 

loan_id period DEFAULT_FLAG..

1234     144     0

1234     145     0

1234     146     0

1234     147     0

1234     148     1

1234     149     0

1234     150     1

1234     151     0

 

In this example, loan_id 1234 and one row for each period. I need only the records until the first time default_flag has value 1.

Following is the expected output:

 

loan_id period DEFAULT_FLAG..

1234     144     0

1234     145     0

1234     146     0

1234     147     0

1234     148     1

 

The data is sorted on loan_id and period.

 

Can anyone please help me achieve this.

 

Thanks

1 ACCEPTED SOLUTION

Accepted Solutions
PaigeMiller
Diamond | Level 26

UNTESTED CODE

 

data want;
    set have;
    by loan_id period;
    if first.loan_id then sum_flag=0;
    sum_flag+default_flag;
    if sum_flag=0 or (sum_flag=1 and default_flag=1) then output;
run;
--
Paige Miller

View solution in original post

2 REPLIES 2
PaigeMiller
Diamond | Level 26

UNTESTED CODE

 

data want;
    set have;
    by loan_id period;
    if first.loan_id then sum_flag=0;
    sum_flag+default_flag;
    if sum_flag=0 or (sum_flag=1 and default_flag=1) then output;
run;
--
Paige Miller
UshaLatha
Obsidian | Level 7

Thanks very much !!!

the code is working perfectly

hackathon24-white-horiz.png

2025 SAS Hackathon: There is still time!

Good news: We've extended SAS Hackathon registration until Sept. 12, so you still have time to be part of our biggest event yet – our five-year anniversary!

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
  • 2 replies
  • 1328 views
  • 0 likes
  • 2 in conversation