Есть ли способ создать пользовательскую функцию, используя PROC FCMP
, которая допускает необязательные параметры?
Например, я написал простой udf в SAS, который проверяет, является ли строка числовой или нет,
PROC FCMP OUTLIB = fcns.functions.all;
FUNCTION isNumeric(string $);
result = ifn(verify(string, " -0123456789") = 0, 1, 0);
RETURN(result);
ENDSUB;
QUIT;
Теперь я хотел бы проверить символы, часто связанные с числами, такие как $
, ,
и .
, но только если это указано пользователем.Примерно так:
PROC FCMP OUTLIB = fcns.functions.all;
FUNCTION isNumeric(string $, symbols=0);
IF symbols = 0 THEN
result = ifn(verify(string, " -0123456789") = 0, 1, 0);
ELSE
result = ifn(verify(string, " -0123456789$,.") = 0, 1, 0);
RETURN(result);
ENDSUB;
QUIT;
Запуск приведенного выше кода дает ошибку.Я искал в Интернете, но ничего не смог найти.Возможны ли необязательные параметры?Если это не так, было бы лучше создать одну функцию с двумя обязательными параметрами или две отдельные функции?Я склоняюсь к выполнению одной функции, но думал, что открою вопрос.