Есть ли умный способ использовать функцию MOD(,)
при определении макропеременных?
Например, рассмотрим это:
%LET year=2015;
%LET dec = %EVAL(mod(&year.,100));
Где dec
будет содержать только два последнихцифры года.Это не будет работать (то же самое с SYSEVAL
), так как функция %EVAL
не может правильно получить доступ к функции MOD
.
Я не хочу включать DATA STEP
, но результат долженна самом деле может быть что-то вроде этого:
data _null_;
input_year=2015;
input_dec =mod(input_year,100);
%LET year=input_year;
%LET dec = input_dec;
put &dec. 'and ' &year.;
run;
Проблема здесь в том, что Макропеременные не могут быть вызваны вне DATA STEP
(возможно, я сделал что-то не так? Даже global option
не работает).
Некоторый контекст:
В существующем autoexec file
пользователь должен изменить некоторые входные данные, в зависимости от года, все вместе 3 Макропеременные должны быть адаптированы (год, декабрь и последующий год).Моя идея заключалась в том, чтобы вывести другие изменения только из одного источника - года.