Combinando comandos com a expressão LET em SAS

Complementando os posts Macros e a expressão Let no SAS e Abbreviation Macro no SAS – Atalho de Códigos, trago aqui uma curiosidade que eu quase não vi nos códigos que herdei por aí (logo penso não ser tão comum): é possível inserir um comando dentro do LET no SAS. Utilizando a tabela exemplo do post Como tratar duplicidades no SAS, veja como é simples:

/*filtra individuos com UF = SP*/
%let filtro = if UF = "SP";

data tabela_sp;
	set tabela_exemplo;
	&filtro;
run;


O mesmo código no proc sql:

/*filtra individuos com UF = SP*/
%let filtro = if UF = "SP";

proc sql;
create table tabela_sp as
select * from tabela_exemplo
where &filtro;
run;

Você pode combinar esses filtros (ou outros comandos quaisquer) com a função join em algumas situações em que existem várias tabelas com especificações distintas e deixar seu código mais maleável (ex.: left join __ where &comando).

Como já disse em outras situações, quanto menos estático for seu código, mais interessante será, pois você não precisará ficar fazendo várias alterações ao longo do script e sim apenas uma ou outra mudança nas variáveis inputs. Então bora usar o let mais aí nesses scripts!

Qualquer dúvida, deixe um comentário ou me escreva.

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *