Hoje discutimos Macros SAS para iniciantes e como a macro SAS facilita a nossa vida reduzindo a redundância ou repetibilidade de um código. SAS Macro fornece uma maneira incrível de tornar um processo fácil e automático. Aqui, vamos ver diferentes SAS Macro Variáveis, funções de Macro em linguagem de programação SAS. Além disso, vamos aprender Componentes de SAS Macro Code e alguns benefícios de SAS Macro
Vejamos como SAS Macro funciona.
Não se torne obsoleto & Obtenha um Pink Slip
Follow DataFlair no Google News & Fique à frente do jogo
1. O que é SAS Macro?
Macros basicamente ajudam a reutilizar o código em lugares diferentes vários números de vezes sem ter que digitar o código inteiro de novo e de novo. Isto não só poupa tempo mas resulta em código sem erros.
Deixe-nos entender isto com um exemplo:
proc print data=Policysnapshot;where policydate='09Sep14'd;title "Below are the policy detail for 09-Sep-14";Run;
Acima do código SAS é escrito para extrair detalhes de nível de política para 09-Set-14 e deixe-nos dizer que o usuário precisa executar este código diariamente após alterar a data (em ambos os lugares) para a data atual.
Agora, vamos olhar para o mesmo código usando macros SAS.
Proc Print Data=Sales.Policysnapshot;Where policydate="&sysdate9"d;Title "Below are the policy detail for %sysdate9";Run;
Neste caso, o usuário não precisa fornecer valor para a data atual. O código irá automaticamente escolher uma data atual de um sistema.
Não se esqueça de ler – Funções SAS
Benefícios do uso da macro SAS
Macro SAS nos permite:-
- Facilitar nosso trabalho reutilizando código similar várias vezes após defini-lo.
- Faça alterações em uma variável em um único local e as reflita em vários locais.
- Os dados do seu programa conduzido, ou seja, deixar SAS decidir o que fazer com base em valores de dados reais
Acima de tudo, ele ajuda a reduzir os esforços necessários para ler e escrever SAS Code.
Componentes do SAS Macro Code
SAS Macro code tem dois componentes: Macros e variáveis Macro. Em um programa SAS, eles têm se referido diferentemente como:-
- &Nome refere-se a Macro Variable
- %Nome refere-se a Macro
SAS Macro Variables
Uma macro variável é como uma variável padrão, exceto que seu valor não é um conjunto de dados e tem apenas um único valor de caractere. O valor de uma variável de macro pode ser um nome de variável, um numeral ou qualquer texto que você queira substituir no seu programa.
O escopo de uma variável de macro pode ser local ou global, dependendo de como nós a definimos. Se ela for definida dentro de um programa de macro, o escopo é local (disponível apenas para esse código de macro). No entanto, se a tivermos definido fora (no corpo principal), então podemos usá-la em qualquer lugar no programa SAS.
Usamos a instrução %LET para criar e atribuir um valor às variáveis de macro.
% LET <Macro Variable Name>=Valor;
Valor da variável de macro na instrução %LET pode ser qualquer string e tem as seguintes características:-
- Pode ser de qualquer comprimento entre 0 e 65,534 caracteres
- Os valores numéricos também são armazenados como uma cadeia de caracteres
- Expressões matemáticas não são avaliadas
- A marca de cotação também pode ser armazenada como uma parte de um valor
- Os espaços em branco de leitura e de acompanhamento são removidos antes da atribuição
SAS As variáveis Macro são referenciadas usando um sinal de ampersand (&) seguido por um nome de variável macro.
Não se esqueça de verificar – Funções de String SAS ou Funções de Caracteres
&<Variável Macro Nome>
Exemplo:-
Nome da variável Macro
Podemos também declarar múltiplas variáveis de macro e usá-las em diferentes lugares no Código SAS. A variável macro não resolve quando eles acessam entre aspas simples. Portanto, devemos usar aspas duplas para referenciá-las.
;
macro-variável-1 <…macro-variável-n>
é o nome de uma ou mais variáveis de macro SAS.
A afirmação %GLOBAL cria uma ou mais variáveis de macro globais e atribui valores nulos às variáveis. Variáveis de macro globais são variáveis que estão disponíveis durante toda a execução da sessão ou trabalho SAS.
Uma variável de macro criada com uma instrução %GLOBAL tem um valor nulo até que você lhe atribua algum outro valor. Se uma variável de macro global já existir e você especificar essa variável em uma instrução %GLOBAL, o valor existente permanece inalterado.
Must learn – What is Sintaxe SAS and how we can use them
ii. SAS Local Macro Variables
A sintaxe de uma variável Macro Local em Programação SAS:
%Variável macroLOCAL-1 <…macro-variável-n>;
variável macro-1 <…macro-variável-n>
é o nome de uma ou mais variáveis macro
A afirmação %LOCAL cria uma ou mais variáveis macro locais. Uma macro variável criada com %LOCAL tem um valor nulo até que você lhe atribua algum outro valor. Variáveis da macro local são variáveis que estão disponíveis somente durante a execução da macro na qual estão definidas.
Utilizar a instrução %LOCAL para garantir que as variáveis da macro criadas anteriormente em um programa não sejam inadvertidamente alteradas por valores atribuídos a variáveis com o mesmo nome na macro atual. Se uma variável de macro local já existir e você especificar essa variável em uma instrução %LOCAL, o valor existente permanece inalterado.
Ustand the concept – SAS Data Set – Special & Built-in Data Set in SAS
iii. Comparação – Variáveis Globais vs Locais
- Bambos a declaração %LOCAL e a declaração %GLOBAL criam variáveis macro com um escopo específico. Entretanto, a instrução %LOCAL cria variáveis de macro locais que existem somente durante a execução da macro que contém a variável, e a instrução %GLOBAL cria variáveis de macro globais que existem para a duração da sessão ou do trabalho.
- Se você definir uma variável de macro local e uma variável de macro global com o mesmo nome, o recurso de macro usa o valor da variável local durante a execução da macro que contém aquela variável local. Quando a macro que contém a variável local não está sendo executada, o recurso de macro usa o valor da variável global.
Funções das Macros SAS
Essas funções de Macro SAS têm sintaxe semelhante, comparadas às suas funções de contraparte em etapas de dados e também retornam resultados de maneira semelhante.
i.%UPCASE() Função
Usamos esta função para converter o caso das letras para maiúsculas:
Sintax:- %UPCASE (Argumento)
Exemplo:-
%Let heading=this is detail of country;Proc Print Data=Orion.Country;Title %UPCASE(&heading);Run;
Imprime o título como “ESTE É O DETALHO DO PAÍS”.
Explorar as principais aplicações da programação SAS
ii. %SUBSTR() Função
Esta função retorna o número dado de caracteres da posição especificada.
Syntax:- %SUBSTR (argumento, posição )
Se um número de caracteres não for fornecido, uma função %SUBSTR retornará caracteres da posição dada até o final da string.
Exemplo:-
%Let abc=this is detail of country;%LET def=%SUBSTR(&abc,19,7);Proc Print Data=Orion.Country;Title %Upcase(&def);Run;
Sumário
Hence, neste tutorial de Macros SAS. Espero que você tenha aprendido algumas novas maneiras de manipular dados no SAS. Agora você será capaz de economizar muito tempo incorporando a SAS Macro em seu programa. Fique atento para aprender mais coisas tão interessantes em SAS.
.