Sas: proc sql에서 if 문을 사용하는 방법


SAS의 PROC SQL 에서는 IF 문을 사용할 수 없지만 CASE 연산자를 사용하여 특정 조건에 따라 변수가 취해야 하는 값을 정의할 수 있습니다.

다음 예 에서는 다양한 농구 선수에 대한 정보가 포함된 SAS의 다음 데이터 세트에서 실제로 CASE 연산자를 사용하는 방법을 보여줍니다 .

 /*create dataset*/
data my_data;
    input team $points;
    datalines ;
Cavs 12
Cavs 14
Warriors 15
Hawks 18
Mavs 31
Mavs 32
Mavs 35
Celtics 36
Celtics 40
;
run ;

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

예 1: 결과가 두 개만 있는 CASE 연산자 사용

PROC SQL 에서 CASE 연산자를 사용하여 points_flag 라는 데이터세트에 새 열을 생성할 수 있습니다. 이 열은 points 열의 값이 20보다 작으면 0 값을 취하고 그렇지 않으면 1 값을 갖습니다.

 /*create new column called points_flag using case operator*/ 
proc sql ;
  select *,
box 
      when points < 20 then 0 else 1
      end as points_flag
from my_data;
quit ; 

points_flag 열은 points 열의 값이 20보다 작으면 값 0을, 그렇지 않으면 값 1을 취합니다.

예 2: 세 개 이상의 결과에 CASE 연산자 사용

또한 PROC SQL 에서 CASE 연산자를 사용하여 points_flag 라는 데이터세트에 새 열을 생성할 수 있습니다. 이 열은 포인트 열의 값이 20보다 작으면 0 값을 취하고, 포인트가 35보다 작으면 값 1을 받습니다. 또는 그렇지 않으면 2의 값:

 /*create new column called points_flag using case operator*/ 
proc sql ;
  select *,
      box 
      when points < 20 then 0
when points < 35 then 1 else 2
      end as points_flag
      from my_data;
quit ; 

points_flag 열은 points 열의 해당 값에 따라 0, 1 또는 2 값을 취합니다.

참고 : 새 열에서 원하는 만큼 다양한 값을 생성하려면 원하는 만큼 when 문을 자유롭게 사용하세요.

추가 리소스

다음 튜토리얼에서는 SAS에서 다른 일반적인 작업을 수행하는 방법을 설명합니다.

SAS: PROC SQL에서 WHERE 연산자를 사용하는 방법
SAS: PROC SQL에서 IN 연산자를 사용하는 방법
SAS: PROC SQL에서 UPDATE를 사용하는 방법
SAS: PROC SQL에서 CONTAINS를 사용하는 방법

의견을 추가하다

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