0

My data is structured Monthly, on each month an update is added to each customers record. these are stacked vertically. I want to search through each customer if a flag or indicator appears in any month I want to record that permanently. From my example if there is ever a missed payment I want the ever_missed flag to always be 1

|Cust Id| |Month| |missed_pay| |ever_missed|

1234 Jan 0
1234 Feb 0
1234 Mar 1
1234 Apr 0
5678 Jan 1
5678 Feb 0
5678 Mar 1
5678 Apr 0

I have been looking at array tutorials but generally the dates etc are horizontal

Jan Feb Mar.

essentially all i want to do is loop through each record per customer and if missed_pay = 1 then ever_missed = 1

1 Answer 1

1

This could be done in a DATA step with "DOW loop", but SAS PROC SQL makes it easy, because of the "remerging" feature. I don't think arrays would be helpful for this.

data have ;
  input Cust_ID Month $3. missed_pay ;
  cards ;
1234 Jan 0
1234 Feb 0
1234 Mar 1
1234 Apr 0
5678 Jan 1
5678 Feb 0
5678 Mar 1
5678 Apr 0
9999 Jan 0
9999 Feb 0
9999 Mar 0
9999 Apr 0
;

proc sql ;
  create table want as
  select *,max(missed_pay) as ever_missed
  from have
  group by Cust_ID
  ;
quit ;

proc print data=want ;
run ;
Sign up to request clarification or add additional context in comments.

Comments

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.