Estou tendo problemas para pegar o jeito de usar funções no SAS, a sintaxe é confusa.
Estou tentando conseguir um nome sem data no final. Por exemplo, eu tenho algo assim: "MODEL_NAME_202101" e quero "MODEL_NAME".
Estou fazendo assim.
%let model_ds =
%sysfunc(
substr(
%scan(&models_list, 12),
0,
%length(%scan(&models_list, 12)) - 7
)
);
%put &model_ds;
E a única coisa que recebo é uma guerra que não me diz nada sobre os erros de sintaxe que estou cometendo.
WARNING: Argument 2 to function SUBSTR referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
Não tenho ideia de como devo aninhar chamadas de função. Cada chamada deve ter %sysfunc
antes da chamada, ou as funções de aninhamento dentro da função já chamada %sysfunc
estão com a sintaxe correta.
Seria bom se alguém pudesse me consultar a explicação / documentação deste "recurso" específico,
obrigado
O ritmo provavelmente está correto sobre a melhor solução para você - mas o erro específico:
WARNING: Argument 2 to function SUBSTR referenced by the %SYSFUNC or %QSYSFUNC macro function is out of range.
É por isso:
substr(...,0,...)
Esse segundo argumento é "em que posição começar". SAS é baseado em 1, não baseado em 0 (você é um desenvolvedor Python originalmente? Isso pode ser um pouco desafiador então!), Então ele nunca precisa ser inferior a 1.
substr(...,1,...)
Este artigo é coletado da Internet.
Se houver alguma infração, entre em [email protected] Delete.
deixe-me dizer algumas palavras