Como usar uma instrução do until no sas


Você pode usar uma instrução DO UNTIL no SAS para fazer um loop repetidamente até que uma condição seja atendida.

Os exemplos a seguir mostram duas maneiras diferentes de usar esta instrução na prática.

Exemplo 1: instrução DO UNTIL no SAS

O código a seguir mostra como usar uma instrução DO UNTIL no SAS para criar um conjunto de dados contendo duas variáveis chamadas var1 e var2 que continuam a gerar novos valores até que o valor de var1 seja maior que 100:

 /*create dataset using DO UNTIL statement*/
data my_data;

var1 = 1;
var2 = 1;

do until (var1 > 100);
    var1 = var1 + var2; 
    var2 = var1 * var2;
    var1 + 1;
    
output ;

end ;

run ;

/*view dataset*/
proc print data =my_data;

A instrução DO UNTIL continuou a gerar novos valores para var1 e var2 até que o valor de var1 fosse maior que 100.

Quando o valor de var1 excedeu 100, a instrução DO UNTIL parou e novos valores deixaram de ser adicionados ao conjunto de dados.

Exemplo 2: instrução DO UNTIL com instrução TO no SAS

O código a seguir mostra como usar uma instrução DO UNTIL com uma instrução TO no SAS para criar um conjunto de dados contendo duas variáveis chamadas var1 e var2 que continuam a gerar novos valores até que o valor de var1 seja maior que 10:

 /*create dataset using DO UNTIL statement with TO statement*/
data my_data;

var1 = 0; 

do var2 = 1 to 5 until (var1 > 10);   
    var1 = var2**2;
    
output ;

end ;

run ;

/*view dataset*/
proc print data =my_data;

A instrução TO instruiu o SAS a tentar gerar valores para var2 variando de 1 a 5, mas apenas até que o valor de var1 fosse maior que 10.

Quando o valor de var1 excedeu 10, a instrução DO UNTIL parou e novos valores deixaram de ser adicionados ao conjunto de dados.

Recursos adicionais

Os tutoriais a seguir explicam como executar outras tarefas comuns no SAS:

Como usar IF-THEN-DO no SAS
Como usar IF-THEN-ELSE no SAS
Como usar uma instrução DO WHILE no SAS

Add a Comment

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