Используя retain
для хранения переменной счетчика, довольно легко увеличить счетчик того, сколько раз было выполнено условие if
.
data tmp;
retain Counter 0;
do i=1 to 10;
if 3<i<7 then do;
Counter+1;
*some stuff;
end;
end;
put 'If statement true ' Counter 'time(s).';
run;
Обратите внимание, что это записывает в журнал один раз,это последнее, что происходит перед завершением шага данных (в примере только один цикл в шаге данных).Если вы хотите сделать это для шага данных, который имеет более одного цикла (например, когда оператор set
считывает данные из другого набора данных, вам нужно сообщить SAS, что вы хотите, чтобы он сообщал только в концешаг. Вы бы сделали это так:
* create an example input data set;
data exampleData;
do i=1 to 10;
output;
end;
run;
* use a variable 'eof' to indicate the end of the input dataset;
data new;
set exampleData end=eof;
retain Counter 0;
if 3<i<7 then do;
Counter+1;
*some stuff;
end;
if eof then put 'If statement true ' Counter 'time(s).';
run;