끄적이는 프로그래밍/SAS 프로그래밍

SAS programming 기초 (제어문, IF, Do loop, Select when)

요맘때10 2022. 8. 28. 15:09
반응형

목적

오늘은 SAS 프로그램을 이용하여 data step에서 제어문에 대해 알아보자. Sample data는 sashelp.class를 이용할 것이다.

SAS 프로그램에서 제어문은 아래와 같이 있는데,

- IF (조건 IF, 선택 IF)

- Do loop (단순 Do, 반복 Do, Do Ultil, Do While)

- Select when


 

1. IF

1.1 조건 IF

- 조건에 해당하는 새로운 변수를 생성할 때 사용

- if 조건1 then 변수=xx; else if 조건2 then 변수=xx; else if 조건3 then 변수=xx; ... ; else 변수=xx;

data a;
  set sashelp.class;
  if AGE<=12 then AGEGRP=1;
  else if AGE<=14 then AGEGRP=2;
  else AGEGRP=3;
run;

 

1.2 선택 IF

- 조건에 해당하는 데이터를 추출할 때 사용

- if 조건;

data a;
  set sashelp.class;
  if SEX="남";
run;

반응형

2. Do loop

2.1 단순 Do

- 한개 이상의 문장을 쓰고 싶을 때 사용

- do; 문장1; 문장2; ...; end;

data a;
  set sashelp.class;
  if AGE<=14 then do;
    if SEX="남" then SPORTS="축구";
    else if SEX="여" then SPORTS="배구";
  end;
  else do;
    if SEX="남" then SPORTS="농구";
    else if SEX="여" then SPORTS="피구";
  end;
run;

 

2.2 반복 Do

- 범위 내에서 반복하여 시행할 때 사용

- do i=초기값 to 마지막값; 문장1; 문장2; ...; end ;

data a;
  set sashelp.class;
  do i=11 to 16;
    if AGE=i then income=i*1000;
  end;
  drop i;
run;

 

2.3 Do Until

- 문장 실행 후 조건을 확인 (최소 1번은 시행)

- do until (조건); 문장1; 문장2; ...; end;

data a;
  AGE=11;
  do until (AGE>16);
    INCOME=AGE*1000; output;
    AGE+1;
  end;
run;

 

2.4 Do While

- 조건부터 묻고 문장 실행

- do while (조건); 문장1; 문장2; ...; end;

data a;
  AGE=11;
  do while (AGE<=16);
    INCOME=AGE*1000; output;
    AGE+1;
  end;
run;

 

3. Select when

- select; when (조건1) 변수=xx; when (조건2) 변수=xx; ...; otherwise 변수=xx; end;

data a;
  set sashelp.class;
  select;
    when (AGE<=12) AGEGRP=1;
    when (AGE<=14) AGEGRP=2;
    otherwise AGEGRP=3;
  end;
run;

 

이전 포스팅을 보려면 아래 링크 Click

2022.08.27 - [끄적이는 통계분석/SAS] - SAS programming 기초 (Dataset 만들기, 외부데이터 불러오기, proc import, infile 문)

반응형