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으로 바꾸는 방법

의견을 추가하다

이메일 주소는 공개되지 않습니다. 필수 필드는 *로 표시됩니다