* 출처 : http://cafe.daum.net/statsas/3F8j/63
예전에 올렸던 글인데 최근 proc glmmod 로 가변수 생성 방법이 있어서 추가하여 올립니다.
참고하시기를 바랍니다.
* 출처 : http://blogs.sas.com/content/iml/2016/02/22/create-dummy-variables-in-sas.html
DATA TEST;
INPUT age;
DATALINES;
1
2
3
4
5
;
* 방법 1; 할당문;
DATA DUMMYMETHOD1;
SET TEST;
age1=(age=1);
age2=(age=2);
age3=(age=3);
age4=(age=4);
age5=(age=5);
PROC FREQ;
TABLE age1 age2 age3 age4 age5;
RUN;
* 방법 2; 배열;
DATA DUMMYMETHOD2 (DROP = i);
SET TEST;
ARRAY A {*} age1 age2 age3 age4 age5;
DO i = 1 TO 5;
A(i) = (age=i);
END;
PROC FREQ;
TABLE age1 age2 age3 age4 age5;
RUN;
* 방법 3; 조건문;
DATA DUMMYMETHOD1;
SET TEST;
IF age=1 then age1=1; ELSE age1 = 0;
IF age=2 then age2=1; ELSE age2 = 0;
IF age=3 then age3=1; ELSE age3 = 0;
IF age=4 then age4=1; ELSE age4 = 0;
IF age=5 then age5=1; ELSE age5 = 0;
PROC FREQ;
TABLE age1 age2 age3 age4 age5;
RUN;
* 방법 4-1: proc glmmod 사용;
proc glmmod data=TEST outdesign=DUMMYMETHOD4 outparm=GLMParm;
class age;
model age = age;
run;
* 방법 4-2: proc glmmod 사용;
data Patients;
keep Cholesterol Sex BP_Status;
set sashelp.heart;
if 18 <= _N_ <= 27;
run;
proc glmmod data=Patients outdesign=GLMDesign outparm=GLMParm;
class sex BP_Status;
model Cholesterol = Sex BP_Status;
run;