Eu tenho a variável global &project_path e preciso escrever uma macro %set_path
que criará outra variável global que seja igual &project_path\parameter
. No meu caso, o nome da nova variável deve ser parâmetro_path. Sou novo em macro SAS e pelo que entendi eles não podem retornar valores como funções normais, então não posso fazer algo como log_path=%set_path(log)
? Então eu tenho que passar uma nova variável como parâmetro, %set_path(log_path, log)
mas não consigo tornar o log_path Global? Como resolver este problema?
O que descobri foi definir o nome da nova variável dependendo do parâmetro. Mas só funciona se você adicionar um prefixo. Eu preciso de um postfix. E de qualquer forma, em geral, não parece a melhor opção
%macro set_path(sub_dir);
%global &sub_dirSet;
%let &sub_dirSet = &project_path\&sub_dir;
%mend set_path;
%set_path(data);
%set_path(log);
%put &dataSet;
%put &logSet;
Claro que tentei algo como
%macro set_path(var_name, sub_dir);
%global var_name;
%let var_name = &project_path\&sub_dir;
%macro set_path;
mas pelo que entendi é fundamentalmente errado