Hohooo. That is really not easy, especially you need so many datasets to process. HaiKuo has pointed you a right direction . data have;
input key report_date :mmddyy10. state$ animal$ cost homes rcosttohome startdate:mmddyy8.;
format report_date startdate :mmddyy10.;
cards;
1234 01/01/01 CA cats 20 30 .50 02/03/04
2356 01/01/01 NC dogs 30 34 .75 03/04/06
1288 01/01/01 TX cows 40 86 .83 07/08/09
;
run;
data want(keep=key report_date var_name all_character all_ratio all_date all_number where=(var_name not in ('key' 'report_date') ));
set have;
array _a{*} $ _character_;
array _b{*} _numeric_;
length var_name all_character $ 400;
do i=1 to dim(_a);
var_name=vname(_a{i});
all_character=_a{i};
output; all_character=' ';
end;
do i=1 to dim(_b);
var_name=vname(_b{i});
if _b{i} gt 0 and _b{i} lt 1 then do;
all_ratio=_b{i};
output;all_ratio=.;
end;
else if vformat(_b{i}) in: ('MMDDYY' 'YYMMDD' 'DDMMYY' 'DATE') then do;
all_date=_b{i};
output;all_date=.;
end;
else do;
all_number=_b{i};
output; all_number=.;
end;
end;
format all_date yymmdd10.;
run;
Ksharp
... View more