BookmarkSubscribeRSS Feed

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

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

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

hackathon24-white-horiz.png

The 2025 SAS Hackathon Kicks Off on June 11!

Watch the live Hackathon Kickoff to get all the essential information about the SAS Hackathon—including how to join, how to participate, and expert tips for success.

YouTube LinkedIn

Article Labels
Article Tags