BookmarkSubscribeRSS Feed

[SQL] PROC SQL을 활용한 데이터 전치(세로-> 단일 변수)

Started ‎06-11-2020 by
Modified ‎06-11-2020 by
Views 105

* 질문 : http://www.mysas.co.kr/sas_tiptech/b_answer.asp?b_no=3142&cmd=content&bd_no=6;

 

* SAS에서는 기본적으로 DATA 스텝과 PROC TRANSPOSE등이 전치를 담당하고 있어서,

  PROC SQL에서 오라클의 윈도우 함수 등과 같은 기능은 아직 지원되고 있지 않습니다.

  일단 CASE 구문과 MAX구문으로 처리해 보았습니다.;

 

DATA BACK;

 INPUT VAR1 VAR2 $ VAR3 $;

CARDS;

  1 A 1 

  1 B 0 

  1 C 1

  2 A 0

  2 B 0

  2 C 1

;

* CATS 함수 : http://statwith.pe.kr/SAS/1.FUNCTION/F0080.htm;

PROC SQL;

CREATE TABLE TEST AS

  SELECT VAR1,

         CATS(MAX(CASE WHEN VAR2='A' THEN VAR3 ELSE '' END),

              MAX(CASE WHEN VAR2='B' THEN VAR3 ELSE '' END),

              MAX(CASE WHEN VAR2='C' THEN VAR3 ELSE '' END)

            ) AS VAR4 LENGTH=3

  FROM   BACK

  GROUP BY 1;

QUIT;

 

* 참조 : http://cafe.daum.net/statsas/3F8j/117;

* 참조 : http://cafe.daum.net/statsas/3F8j/109;

Version history
Last update:
‎06-11-2020 10:25 PM
Updated by:
Contributors

sas-innovate-white.png

🚨 Early Bird Rate Extended!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.

 

Lock in the best rate now before the price increases on April 1.

Register now!

Article Labels
Article Tags