Hi I'm trying to run some basic statistics on variables that are numbered in sequence, however, not all the numbers exist in the sequence. The basic statistic tests exist in a separate macro (stddiff) that I'm calling from my do-looped macro and I only want it to call my statistics macro if the variable actually exists. I have variables from var001 - var899, however for example, var018 does not exist. This is currently what I have for my code:
%macro std_diff_loop (start,end);
%do i=&start %to &end;
%if %length(&start) eq 1 %then %do;
%let i=%sysfunc(putN(&i,z3.));
%end;
%if %length(&start) eq 2 %then %do;
%let i=%sysfunc(putN(&i,z2.));
%end;
%stddiff( inds = indicators,
groupvar = in_group,
numvars = ,
charvars = var_n&i,
wtvar =,
stdfmt = 8.4,
outds = stddiff_result_var_&i );
%end;
%mend;
When I run it this way, I get errors for the variables that don't exist since it can't run statistics on variables that don't exist.
Ideally what I'd like is for the macro to check my data set (indicators) before it calls the macro stddiff and only call the macro if the variable exists in the data set. Thanks!
... View more