Sas의 do 루프에 대한 전체 가이드
SAS의 DO 루프는 특정 횟수만큼 작업을 수행하는 데 사용될 수 있습니다.
SAS에는 세 가지 기본 DO 루프가 있습니다.
1. 루프 만들기
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
run ;
기능 : 이 루프는 i = 1부터 10까지 10번의 반복을 수행합니다. 여기서 각 행의 값은 i에 4를 곱한 것과 같습니다.
멈출 때 : 이 루프는 10번의 반복 후에만 중지됩니다.
2. 루프 중에 DO
data data2;
x = 0;
do i = 1 to 10 while(x < 20 );
x = i*4;
output ;
end ;
run ;
기능 : 이 루프는 i = 1에서 10까지 10번의 반복을 수행하려고 시도합니다. 여기서 각 행의 값은 i에 4를 곱한 것과 같습니다.
중지될 때 : 이 루프는 x 값이 20을 초과하거나 10회 반복이 완료될 때 중 먼저 도래하는 시점에 중지됩니다.
3. 루프까지 수행
data data3;
x = 0;
do i = 1 to 10 until(x > 30 );
x = i*4;
output ;
end ;
run ;
기능 : 이 루프는 i = 1에서 10까지 10번의 반복을 수행하려고 시도합니다. 여기서 각 행의 값은 i에 4를 곱한 것과 같습니다.
중지될 때 : 이 루프는 x 값이 30을 초과하거나 10회 반복이 완료될 때 중 먼저 도래하는 시점에 중지됩니다.
다음 예에서는 실제로 각 DO 루프를 사용하는 방법을 보여줍니다.
예시 1: DO 루프
다음 DO 루프를 사용하여 10개 행의 데이터 세트를 생성할 수 있습니다.
/*use DO loop to create dataset*/
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data1;
결과는 i열의 값이 1부터 10까지이고 x열의 값이 4부터 40까지인 10개의 행을 포함하는 데이터 세트입니다.
drop i를 사용하여 데이터 세트에서 인덱스 열을 삭제할 수 있습니다.
/*use DO loop to create dataset*/
data data1;
x = 0;
do i = 1 to 10;
x = i*4;
output ;
end ;
drop i;
run ;
/*view dataset*/
proc print data =data1;
예제 2: DO WHILE 루프
다음 DO WHILE 루프를 사용하여 i = 1부터 10까지의 변수 i가 있는 데이터 세트를 생성할 수 있습니다. 여기서 각 행의 값은 i에 4를 곱한 것과 같고 x는 20보다 작습니다.
/*use DO WHILE loop to create dataset*/
data data2;
x = 0;
do i = 1 to 10 while (x < 20 );
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data2;
xa가 20에 도달하면 루프가 행 생성을 중지했습니다.
예제 3: DO UNTIL 루프
다음 DO UNTIL 루프를 사용하여 i = 1부터 10까지의 변수 i가 있는 데이터 세트를 생성할 수 있습니다. 여기서 각 행의 값은 x가 30보다 커질 때까지 i에 4를 곱한 것과 같습니다.
/*use DO UNTIL loop to create dataset*/
data data3;
x = 0;
do i = 1 to 10 until (x > 30 );
x = i*4;
output ;
end ;
run ;
/*view dataset*/
proc print data =data3;
x가 30을 초과하면 루프가 행 생성을 중지했습니다.
추가 리소스
다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.
SAS에서 데이터를 정규화하는 방법
SAS에서 중복을 제거하는 방법
SAS에서 누락된 값을 0으로 바꾸는 방법