본문 바로가기

SAS

[내 맘대로 SAS 공부] 범주형(categorical) 변수 처리

반응형

1. 데이터 생성

  • Input: 생성할 변수명 설정
       - 변수1 $ : 변수1이 문자형임을 의미
       - 변수2: $4. : 변수2는 문자형이며 4자리까지 출력함을 의미
       - @@ :  입력한 데이터(cards)에서 한 줄에 여러 데이터가 들어와도 지정한 변수(input)에 지정된 변수에 맞춰 데이터 생성 
data human;		/* data 데이터 테이블 명 지정 */		
	input name: $4. gender $ age height @@;		
    
	cards;
	Lee Women 25 176 Park Women 28 165
	Kim Men 14 169 Choi Women 38 172
	Youkkk Men 21 181 Youk Men 24 173
	Leeeee Women 43 179 Lee Men 23 159
	Kim Men 19 180
	Kang Men 21 230
	;
run;

 

2. 데이터 정보

  • proc contents: 데이터 타입(유형) 출력
  • proc freq: 데이터의 빈도 관련 정보 출력
/*----- 1. 데이터 타입 정보 -----*/
proc contents data = human; run;



/*----- 2. 데이터 빈도 정보 -----*/
proc freq data = human; 	
	table name gender;		/* tabel: 데이터 중 보고 싶은 변수를 설정, table 코드를 작성하지 않을 경우 모든 변수에 대한 결과 출력 */
run;
	
proc freq data = human; 	
	table name * gender;	/* 2차원 표로도 출력 가능 */
run;

 

3. 범주형 데이터 전처리

  • Label Encoding
  • One-Hot Encoding
/* 1. Label Encoding */
data LabelEncoding_human;
	set human;
	if gender = "Women" then sex = 1;
	else sex = 2;
run;


/* 2. OneHot Encoding */
data OneHotEncoding_human;
	set human;
	array dum{2} M W;
	if gender = "Women" then dum{2} = 1;
	else dum{1} = 1;
run;

 

4. Boxplot 그리기

(1) 기본 Boxplot

proc sgplot data = human;
   vbox height ;		/* vbox: 박스 플랏을 그릴 변수  */
run;

(2) 범주형 변수에 따른 Boxplot + 옵션

 

ods graphics on / width = 10in height = 5in;
proc sgplot data = human;
   vbox height / category = gender 	boxwidth = 0.5 
                                        group = gender
                                        whiskerattrs = (color = red) 
                                        lineattrs = (color = blue)
                                        medianattrs = (color = yellow)
                                        meanattrs = (color = green)
                                        outlierattrs = (color = purple)
                                        transparency = 0.5;

                 title 	"height x gender"; 
                 xaxis 	label = "gender" 
                        labelattrs = (size = 10pt weight = bold)
        /* 		values = ("MM" "WW")  */
                        valueattrs = (size = 15pt weight = bold);
                 yaxis 	label = "height" 
                        labelattrs = (size = 15pt weight = bold color = red) 
                        valueattrs = (size = 10pt weight = bold);
				 				
run;

0. ods graphics on: Plot이 그려지는 출력창 크기 조절

1. 기본설정
   - category: 사용할 범주형 변수 
   - group: 범주를 세분화할 변수
   - boxwidth: 박스의 넓이 조절
   - whiskerattrs: boxplot의 수염 색상
   - lineattrs: boxplot의 상자 테두리 색상
   - medianattrs: boxplot의 중앙값 선 색상
   - meanattrs: boxplot의 평균값 점 색상
   - outlierattrs: boxplot의 이상치 점 색상
   - transparency: 그림의 투명도 설정

2. title: boxplot 제목

3. xaxis, yaxis: x축, y축 설정
   - label: 축 제목 설정
   - labelattrs: 축 제목 관련 설정(크기, 굵기 등)
   - values 축 값 이름 설정
   - valuelattrs: 축 값 관련 설정(크기, 굵기 등) 

 

5. Pie chart

/* 파이 차트 그리기 */
proc sgpie data = human;
   pie gender ;
run;

 

반응형