Jak używać instrukcji do while w sas-ie


Możesz użyć instrukcji DO WHILE w SAS-ie, aby wykonywać pętlę w kółko , dopóki warunek pozostaje spełniony.

Poniższe przykłady pokazują dwa różne sposoby wykorzystania tej instrukcji w praktyce.

Przykład 1: Instrukcja DO WHILE w SAS-ie

Poniższy kod pokazuje, jak użyć instrukcji DO WHILE w SAS-ie, aby utworzyć zestaw danych zawierający dwie zmienne zwane var1 i var2 , które w dalszym ciągu generują nowe wartości , nawet jeśli wartość var1 jest mniejsza niż 100:

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

var1 = 1;
var2 = 1;

dowhile (var1<100);
    var1 = var1 + var2; 
    var2 = var1 * var2;
    var1 + 1;
    
output ;

end ;

run ;

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

Instrukcja DO WHILE nadal generowała nowe wartości dla var1 i var2 , mimo że wartość var1 była mniejsza niż 100.

Gdy wartość zmiennej var1 przekroczyła 100, instrukcja DO WHILE została zatrzymana i zaprzestano dodawania nowych wartości do zbioru danych.

Przykład 2: Instrukcja DO WHILE z instrukcją TO w SAS-ie

Poniższy kod pokazuje, jak użyć instrukcji DO WHILE z instrukcją TO w SAS-ie, aby utworzyć zestaw danych zawierający dwie zmienne zwane var1 i var2 , które w dalszym ciągu generują nowe wartości , nawet jeśli wartość var1 jest mniejsza niż 10:

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

var1 = 0; 

do var2 = 1 to 5 while (var1 < 10);   
    var1 = var2**3;
    
output ;

end ;

run ;

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

Instrukcja TO instruowała SAS-a, aby podjął próbę wygenerowania wartości dla var2 z zakresu od 1 do 5, ale tylko wtedy, gdy wartość var1 była mniejsza niż 10.

Gdy wartość zmiennej var1 przekroczyła 10, instrukcja DO WHILE została zatrzymana i zaprzestano dodawania nowych wartości do zbioru danych.

Dodatkowe zasoby

Poniższe samouczki wyjaśniają, jak wykonywać inne typowe zadania w SAS-ie:

Jak używać JEŻELI-TO-ZROBIĆ w SAS-ie
Jak używać JEŻELI-TO-ELSE w SAS-ie
Jak usunąć duplikaty w SAS-ie

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *