BookmarkSubscribeRSS Feed
pankak
Calcite | Level 5

i have a credit card data which i have transposed in the following format.The values shows the status of that account in that period of time.

aaa-                    active account authorise

d1-d4-                 delinquent

lep,lwp,lrp,isp-   legal

below is the sample.

data check;

infile datalines;

input acc_id  sta_dt1 $6.  sta_dt2 $6. sta_dt3 $6.  sta_dt4 $6. sta_dt5 $6. 

sta_dt6 $6. sta_dt7 $6.  sta_dt8 $6. sta_dt9 $6.  sta_dt10 $6.

sta_dt11 $6. sta_dt12 $6.  sta_dt13 $6. sta_dt14 $6.  sta_dt15 $6.;

datalines;

1111   aaa   aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    d1    aaa

1112   d1    aaa   aaa   d1    aaa   d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1113   aaa   aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1114   aaa   aaa   aaa   d1    d2    d3    d4    aaa   aaa   d1    d2     d3   aaa    aaa   d1

1115   aaa   aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1116   d1    aaa   aaa   aaa   d1    d2    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1117   aaa   aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1118   lep   lep   lwp   lwp   lwp   lwp   lwp   lwp   lwp   lwp   lwp    lrp  lrp    isp   isp

1119   aaa   aaa   aaa   d1    d2    d3    aaa   d1    aaa   d1    d2     d3   aaa    aaa   aaa

1122   d1    aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1123   aaa   aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1124   d1    aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1118   d1    aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     aaa  aaa    aaa   aaa

1119   aaa   aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1122   d1    aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1123   aaa   aaa   aaa   d1    d2    d3    aaa   d1    aaa   d1    d2     d3   aaa    aaa   aaa

1124   d1    aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   d1

1118   d1    aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1119   aaa   aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1122   d1    aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1123   aaa   aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   aaa    aaa   aaa

1124   d1    aaa   aaa   d1    d2    d3    aaa   aaa   aaa   d1    d2     d3   d4     aaa   aaa

run;

1=what i want is to flag those account when their status are changed from ['(d1-d4)']to ['aaa']and ['aaa' ] to '(d1-d4)'

and ['aaa'or '(d1-d4)'] to (lep,or lrp,or isp )

2=want the cycle_counts  as how many times it changes in 7 years of times(here it is 15 month.) as i will apply the code.

  1.['(d1-d4)']to ['aaa']

  2.['aaa' ] to '(d1-d4)'

  3.['aaa'or '(d1-d4)'] to (lep,or lrp,or isp ).

  4.no changes as it may be in aaa or (lep or lrp or isp).

1 REPLY 1
PGStats
Opal | Level 21

I would start with the following steps to count the transitions of all types :

proc format;

value $sta

"aaa" = "A"

"d1", "d2", "d3", "d4" = "D"

"lep", "lwp", "lrp", "isp" = "L";

run;

data trans;

length trans $2;

set check;

array sta{*} sta_dt:;

do dt = 2 to dim(sta);

    trans = cats(put(sta{dt-1}, $sta.), put(sta{dt}, $sta.));

    output;

    end;

keep acc_id dt trans;

run;

proc sql;

create table transCounts as

select acc_id, trans, count(dt) as n

from trans

group by acc_id, trans;

quit;

And then do whatever summary you need on dataset transCounts

PG

PG

sas-innovate-2024.png

Join us for SAS Innovate April 16-19 at the Aria in Las Vegas. Bring the team and save big with our group pricing for a limited time only.

Pre-conference courses and tutorials are filling up fast and are always a sellout. Register today to reserve your seat.

 

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.

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