✆  55 (11) 3382-1503    |   ⌧  comercial@infomev.com.br       

SAS/ IML: Dicas úteis

O tratamento de dados é um item de extrema importância para garantir a qualidade dos dados, facilitando a programação estatística. A linguagem SAS / IML possui várias formas diferentes para parar a execução do procedimento IML. Cada uma é adequada para uma determinada situação. São elas: as declarações QUIT e RETURN e as instruções ABORT e STOP.
A declaração QUIT é familiar para todos os programadores SAS. É utilizado para encerrar processos interativos, como PROC SQL, PROC GLM e PROC IML. (Lembre-se que você nunca deve usar uma instrução RUN para finalizar um programa IMLPROC.) A Declaração de saídas do procedimento IML, fecha todos os arquivos abertos e libera toda a memória alocada. A instrução QUIT não pode ser usada como parte de uma instrução lógica, como um IF-THEN, consequentemente, não é útil para o tratamento de erros.

A declaração ABORT pode ser utilizada como parte das demonstrações lógicas, tais como declarações IF-THEN/ELSE, como mostrado abaixo:

Indicado para lidar com erros “catastróficos”, como por exemplo, quando os dados não são adequados para uma programação ou para finalizar um programa onde haja variáveis ​​de observações insuficientes para realizar uma análise.

Frequentemente usado no escopo principal de um programa SAS / IML, a declaração ABORT  é considerada a “etiqueta da má programação”. Se você estiver escrevendo um módulo SAS / IML, o melhor é optar pelas instruções STOP ou RETURN para lidar com erros.
Já a declaração STOP é uma alternativa menos drástica para a instrução ABORT, pois não causa PROC IML para sair. A declaração STOP não é normalmente utilizada no âmbito de um programa principal e sim dentro de módulos para parar a sua execução, portando a instrução STOP é semelhante à RETURN.

A instrução de interrupção é diferente da instrução de retorno, pois a primeira pode ser usada para controlar o fluxo de um programa que parou dentro de um módulo.
Por exemplo, o módulo seguinte define uma função que retorna o valor 1 com probabilidade p, e o valor 0, caso contrário. O parâmetro para o módulo deve ter um valor no intervalo [0,1], mas o módulo não verifica o valor do argumento. Portanto, você pode causar um erro de execução no interior do módulo passando um valor inválido, como mostram as seguintes declarações:

A figura acima mostra que a execução é interrompida no módulo.

OBS.: Se a instrução STOP for executada, o programa retorna ao escopo principal.

A instrução RETURN é diferente das declarações anteriores, pois não para um programa ou linda com um programa que já está parado. No entanto, a função RETURN é indicada para o tratamento de condições antes que estas se tornem erros.

Fonte: http://blogs.sas.com