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
이렇게만 간략히 나왔으면 하는데요. 어떻게 짜야하나요??^^;;
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.