Как определить функцию с изменяющимися параметрами количества?

#parameters #sas #varying #fcmp

#параметры #sas #изменение #fcmp

Вопрос:

Я новичок в proc fcmp и я хочу знать, как написать определяемую пользователем функцию с изменяющимися параметрами количества, например, whichc() или coalesce() , в SAS.

Я буду благодарен, если кто-нибудь сможет дать мне несколько советов.

Ответ №1:

Это невозможно, хотя вы можете передавать массивы, как описано здесь (воспроизведено ниже):

 function sas_summation (b[*]) varargs;
   total = 0;
   do i = 1 to dim(b);
       total = total   b[i];
   end;
return(total);
endsub;
run;
quit;

options cmplib=work.functions;

data one;
  input x1-x5;
datalines;
1 2 3 4 5
2 3 4 5 6
4 5 6 7 8
;
run;

data two;
set one;
array temp (5) _temporary_;
array perm2 (*) x1-x5;
do i=1 to dim(temp);
  temp(i)=perm2(i);
end;
drop i;
x=sas_summation(temp);
run;