Hi, I have data like below and I would like to convert variables as test with their result. I have created macro and calling a macro for every variable each time. But the problem is I have more than 4,00,000 records with 100 variables which means 100 tests, so it is taking lot of time for each test and when I am stacking them then I am getting low space pop up notification, and I am unable to run my program completely. Is there any solution for this? data I have: data have;
input Obs $1-2 id $3-7 DT $8-17 var6_d0 $18-20 var20 $21-23 var30 $24-26 var40 $27-29 var70 $30-32 var6_d1 $33-35 var21 $36-38 var31 $39-41 var41 $42-44 var71 $45-47;
datalines;
1 1001 23MAY2023 No
2 1001 23MAY2023 No
3 1001 23MAY2023
4 1001 23MAY2023
1 1001 23MAY2023
2 1001 23MAY2023
3 1001 23MAY2023
4 1001 23MAY2023
1 1001 23MAY2023
2 1001 23MAY2023
3 1001 23MAY2023
4 1001 23MAY2023
1 1001 23MAY2023
2 1001 23MAY2023
3 1001 23MAY2023
4 1001 23MAY2023
1 1001 23MAY2023
2 1001 23MAY2023
3 1001 23MAY2023
4 1001 23MAY2023
1 1001 20JUN2023 No
2 1001 20JUN2023 No
3 1001 20JUN2023
4 1001 20JUN2023
1 1001 20JUN2023
2 1001 20JUN2023
3 1001 20JUN2023
4 1001 20JUN2023
1 1001 20JUN2023
2 1001 20JUN2023
3 1001 20JUN2023
4 1001 20JUN2023
1 1001 20JUN2023
2 1001 20JUN2023
3 1001 20JUN2023
4 1001 20JUN2023
1 1001 20JUN2023
2 1001 20JUN2023
3 1001 20JUN2023
4 1001 20JUN2023
1 1001 15AUG2023 No
2 1001 15AUG2023 No
3 1001 15AUG2023
4 1001 15AUG2023
1 1001 15AUG2023
2 1001 15AUG2023
3 1001 15AUG2023
4 1001 15AUG2023
1 1001 15AUG2023
2 1001 15AUG2023
;
run; Macro I have created: %macro convert_variables_columns(test=);
data want;
set have;
where &test. ne "";
test=&test.;
res=&test.;
run;
proc sort; by id; run;
%mend;
%convert_variables_columns(test=var6_d0);
%convert_variables_columns(test=var20);
%convert_variables_columns(test=var30);
%convert_variables_columns(test=var40);
%convert_variables_columns(test=var70);
%convert_variables_columns(test=var6_d1);
%convert_variables_columns(test=var21);
%convert_variables_columns(test=var31);
%convert_variables_columns(test=var41);
%convert_variables_columns(test=var71); Data I want: data want;
input obs $1-2 id $3-7 dt $8-17 test $18-25 res $26-28;
datalines;
1 1001 23MAY2023 var6_d0 No
2 1001 23MAY2023 var40 No
1 1001 20JUN2023 var6_d0 No
2 1001 20JUN2023 var40 No
1 1001 15AUG2023 var6_d0 No
2 1001 15AUG2023 var40 No
;
;
run; Thanks, Chi
... View more