2013-02-21 12 views
1

통계 대신 값이 누락 된 변수의 값을 표시하도록 proc 테이블을 관리하려면 어떻게해야합니까? 감사!sas에서 proc tabulate로 변수 값을 표시하는 방법은 무엇입니까?

예를 들어, sym의 값을 표시하고 싶습니다. 값 'x'또는 누락 된 값이 필요합니다. 내가 어떻게 해?

샘플 코드 : = × (N = 실종 이후) 각 SYM 당신에게 사람을 제공

data test; 
input tx mod bm $ yr sym $; 
datalines; 
1 1 a 0 x 
1 2 a 0 x 
1 3 a 0 x 
2 1 a 0 x 
2 2 a 0 x 
2 3 a 0 x 
3 1 a 0 
3 2 a 0 
3 3 a 0 x 
1 1 b 0 x 
1 2 b 0 
1 3 b 0 
1 4 b 0 
1 5 b 0 
2 1 b 0 
2 2 b 0 
2 3 b 0 
2 4 b 0 
2 5 b 0 
3 1 b 0 x 
3 2 b 0 
3 3 b 0 
1 1 c 0 
1 2 c 0 x 
1 3 c 0 
2 1 c 0 
2 2 c 0 
2 3 c 0 
3 1 c 0 
3 2 c 0 
3 3 c 0 
1 3 a 1 x 
2 3 a 1 
3 3 a 1 
1 3 b 1 
2 3 b 1 
3 3 b 1 
1 3 c 1 x 
2 3 c 1 
3 3 c 1 
; 
run; 

proc tabulate data=test; 
class yr bm tx mod ; 
var sym; 
table yr*bm, tx*mod; 
run; 

I want the final table to be like this. Thanks!

+0

최종 테이블을 어떻게 보이게 할 수 있습니까? – Joe

답변

2
proc tabulate data=test; 
class tx mod bm yr sym; 
table yr*bm, tx*mod*sym*n; 
run; 

. SYM = missing에 대한 행이 숨겨 지므로 예제 테이블에서 일부 값을 놓치게됩니다. (1 = 'x'를 쉽게 정의하는 형식으로 열을 형식화 할 수 있습니다).

proc tabulate data=test; 
class tx mod bm yr; 
class sym /missing; 
table yr*bm, tx*mod*sym=' '*n; 
run; 

이렇게하면 4 개의 주 변수를 모두 조합 할 수 있지만 기호가 누락되어 자신의 열로 표시됩니다.

케이크를 갖고 먹고 싶다면 SYM을 숫자 변수로 다시 정의해야 VAR로 사용할 수 있습니다.

proc format; 
invalue ISYM 
x=1 
; 
value FSYM 
1='x'; 
quit; 

data test; 
infile datalines truncover; 
input tx mod bm $ yr sym :ISYM.; 
format sym FSYM.; 
datalines; 
1 1 a 0 x 
1 2 a 0 x 
1 3 a 0 x 
... more lines ... 
; 
run; 

proc tabulate data=test; 
class tx mod bm yr; 
var sym; 
table yr*bm, tx*mod*sym*sum*f=FSYM.; 
run; 

이들은 모두 고유 한 조합 행이라고 가정합니다. yr * bm * tx * mod의 배수가 시작되면 예상 결과를 얻을 수 없으므로 여기서 문제가 발생합니다 (1 + 1 + 1 = 3 합계는 'x'를주지 않습니다).

+0

좋아요! 고마워 Joe! – Autumn

관련 문제