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;

macro_dentro_de_macro
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.

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s