Sas: proc sql에서 update를 사용하는 방법


SAS의 PROC SQL 에서 UPDATE 문을 사용하여 데이터 세트에 있는 하나 이상의 열 값을 업데이트할 수 있습니다.

실제로 UPDATE 문을 사용하는 가장 일반적인 방법은 다음과 같습니다.

방법 1: 조건에 따라 열의 값 업데이트

 proc sql ;
    update my_data
    set var1='new_value'
    where var1='old_value';
quit ;

방법 2: 여러 조건에 따라 열의 값 업데이트

 proc sql ;
    update my_data
    set var1 = 
    case when var1> 25 then 100
    when var1> 20 then 50
    else 0
    end;
quit ;

다음 예에서는 SAS의 다음 데이터 세트에서 실제로 각 방법을 사용하는 방법을 보여줍니다.

 /*create dataset*/
data my_data;
    input team $position $points;
    datalines ;
A Guard 22
A Guard 20
A Guard 30
A Forward 14
A Forward 11
B Guard 12
B Guard 22
B Forward 30
B Forward 9
B Forward 12
B Forward 25
;
run ;

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

예시 1: 조건에 따라 열의 값 업데이트

PROC SQL 에서 다음 UPDATE 문을 사용하여 각 팀 열 값을 “Atlanta”로 업데이트할 수 있습니다. 여기서 기존 값은 “A”와 같습니다.

 /*update values in team column where team is equal to 'A'*/
proc sql ;
    update my_data
    set team='Atlanta'
    where team='A';
quit ;

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

이전에 “A”와 같았던 팀 열의 각 값은 이제 “Atlanta”와 같습니다.

팀 열에서 “A”와 같지 않은 모든 값은 변경되지 않고 그대로 유지되었습니다.

예시 2: 여러 조건에 따라 열의 값 업데이트

PROC SQL 에서 다음 UPDATE 문을 사용하여 여러 조건에 따라 포인트 열의 각 값을 업데이트할 수 있습니다.

 /*update values in points column based on multiple conditions*/
proc sql ;
    update my_data
    set points = 
    case when points> 25 then 100
    when points> 20 then 50
    else 0
    end;
quit ;

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

CASE WHEN 문과 함께 UPDATE 문을 사용하여 포인트 열의 값을 업데이트했습니다.

특히:

  • 포인트 열의 기존 값이 25보다 큰 경우 이를 100 으로 업데이트합니다.
  • 그렇지 않고 포인트 열의 기존 값이 20보다 크면 이를 50 으로 업데이트합니다.
  • 그렇지 않은 경우에는 포인트 열의 값을 0 으로 업데이트했습니다.

CASE WHEN 문에서는 세 가지 조건만 사용했지만 원하는 만큼 많은 조건을 사용할 수 있습니다.

추가 리소스

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

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

의견을 추가하다

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