CAFE

SAS_게시판

proc tabulate 에서, weight(가중치) 주는 방법 좀 알려 주세요.

작성자dmitri|작성시간11.11.15|조회수980 목록 댓글 0

9.2버전을 사용 중입니다.

 

매뉴얼 상에는 weight(가중치) 를 줄 수 있다고 하는데.. 빈도건 백분율이건 변화가 없네요.

 

data aaa;
input a b wt;
cards;
1 1 0.9
1 2 0.8
1 3 0.7
2 1 0.7
2 2 0.8
2 3 0.9
;
run;

proc tabulate;
class a b;
table a,b*(N PCTN);
run;

 

proc tabulate;
class a b;
table a,b*(N PCTN); 
weight wt;
run;

 

* weight 를 주건 안 주건 변화가 없습니다.

* 게시판을 보니, 약간의 트릭(sum함수 사용) 을 이용해서 빈도에는 가중치를 부여하더군요... 이것만 해도 매우 큰 도움이 되지만, 백분율에도 가중치를 부여했으면 해서요...

 

혹시 아시는 분은 답변 좀 부탁드리겠습니다.

 

 

 

* 참고로, 게시판글 중 안두진 님의 답글을 첨부하면 다음과 같습니다.

 

*********************************************

 

tabulate에서 빈도수는 weight 반영이 안 됩니다.

그래서 약간의 trick이 필요합니다.

data aaa;
input s a b wt;
cards;
1 1 1 0.9
1 1 2 0.8
1 1 3 0.7
1 2 1 0.7
1 2 2 0.8
1 2 3 0.9
;
run;

이렇게 1값만 갖는 s라는 변수를 추가한다음,

proc tabulate data = aaa;
class a b;
var s;
table a,b * s * sum;
weight wt;
run;

sum 함수를 이용하면,

a b
1 2 3
s s s
Sum Sum Sum
1 0.9 0.8 0.7
2 0.7 0.8 0.9

이런 결과가 나옵니다.

 

 

 

 

 

 

다음검색
현재 게시글 추가 기능 열기

댓글

댓글 리스트
맨위로

카페 검색

카페 검색어 입력폼