2017-11-22 4 views
0

나는 범주 형 변수에서 빈도 테이블을 얻으려고합니다. 출력이 없습니다. 오류로 인해 내 데이터가 누락되었다고합니다.sas의 빈도 테이블

data one; 

input overweight $ hours; 

if hours <= 2 then hours= 'low'; 

if hours > 2 then hours= 'high'; 

if hours= 'high' then d=1; 

else d=0; 

datalines; 

yes 8.0 
no  0.5 
yes 2.0 
yes 6.5 
. 
. 
. 
; 
proc freq data=one order=data; 

by hours; 

table overweight*hours/cmh; 

run; 

감사

+0

아래에서 언급 한 것처럼 SAS에서는 변수 유형을 동적으로 변경할 수 없습니다. HOURS의 이름을 HOURS_CHAR 또는 HOURS_CAT로 바꾸면 다른 이름을 사용할 수 있습니다. 그러면 잘 작동합니다. – Reeza

답변

2

당신은 숫자 변수에 문자열을 할당하려고하기 때문에 데이터가보고되지 않습니다 여기 내 코드입니다.

if hours <= 2 then hours= 'low'; 
if hours > 2 then hours= 'high'; 

이렇게하면 누락 된 값이 시간으로 지정되고 시간은 누락 된 값이므로 출력이 표시되지 않습니다.

이 같은 숫자 시간 값 대신 텍스트 사용하도록 코드를 변경 인 경우 : 당신은 시간에 의해 데이터 집합을 정렬하고 당신이 당신의 출력을 볼 필요가있을 것이다 이후

if hours <= 2 then hours = 0; 
if hours > 2 then hours = 1; 

합니다.