BookmarkSubscribeRSS Feed

[SAS 프로그래밍 고수 백승민] [함수] 같은 관측값으로 구성된 관측치 제거 (CALL SORTC / RANK)

Started ‎06-11-2020 by
Modified ‎06-12-2020 by
Views 89

data xx;
input x $ y $ cnt;
     *VAR1 = SUM(RANK(A.X),RANK(A.Y)); * 예제2 확인시;
cards;
A B 321
B A 321
C E 400
E C 400
D G 350
X F 210
F X 210
;
run;

 

* [방법1] CALL SORTC 함수 사용;
*         함수 인수의 값을 정렬한다.;
* 참조 : *[참조] 
http://cafe.daum.net/statsas/3F8j/174;
DATA BACK;
 SET XX;
     CALL SORTC(X,Y);
RUN;

PROC SORT DATA=BACK OUT=BACK1 NODUPKEY;
     BY X Y;
RUN;

 

* [방법2] RANK 함수 : 아스키 값을 이용하여 문자 비교
* 참조 : 
http://www.statwith.pe.kr/SAS/1.FUNCTION/F0348.htm;
* "A"와 "B"의 아스키 값의 SUM은 같음
  A아스키값 + B아스키값 = B아스키값 + A아스키값;

PROC SQL;
  CREATE TABLE BACK AS
    SELECT A.*
    FROM   XX A
    WHERE  X||Y = ( SELECT MIN(X||Y)
                    FROM   XX B
                    WHERE  SUM(RANK(A.X),RANK(A.Y)) = SUM(RANK(B.X),RANK(B.Y))
                   );
QUIT;

 

 

*[ 질문 ];

* http://cafe.daum.net/statsas/B3m/13369;

 

//

아래와 같은 데이터셋이 있는데 , x와y를 바꾸어도 동일하면 삭제를 하고자 합니다.

==원본==

data xx;
input x $ y $ cnt;
cards;
A B 321
B A 321
C E 400
E C 400
D G 350
X F  210
F X 210
;
run;

 

==원하는 결과물==

 

A B 321
C E 400
D G 350
X F  210

 

이렇게만 간략히 나왔으면 하는데요. 어떻게 짜야하나요??^^;;

 
Version history
Last update:
‎06-12-2020 03:54 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags