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).
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
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.
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.