SAS연습200제/SAS데이터셋활용하기

Q_02_04. 조건에 맞는 관측치 추출하기 - IF문 사용

sas 2025. 3. 18. 21:27

SAS에서 IF 문을 사용하여 조건에 맞는 관측치만을 추출할 수 있습니다. IF 문은 데이터스텝(DATA 단계)에서 조건을 지정하여, 특정 조건을 만족하는 경우에만 관측치를 출력하거나 계산하도록 합니다.

예제 코드

1. 단일 조건으로 관측치 추출하기

예를 들어, age 변수가 18 이상인 관측치만 추출하여 adults라는 새로운 데이터셋을 생성하려면 다음과 같이 작성할 수 있습니다.

data adults;
    set data1;
    if age >= 18;
run;

위 코드는 data1 데이터셋에서 age가 18 이상인 관측치만 adults 데이터셋에 저장합니다.

2. 여러 조건 사용하기

여러 조건을 결합하여 관측치를 필터링하려면 AND 또는 OR 논리 연산자를 사용할 수 있습니다.

  • AND 연산자: 두 조건을 모두 만족하는 경우만 추출
  • OR 연산자: 두 조건 중 하나라도 만족하는 경우 추출
data filtered_data;
    set data1;
    if age >= 18 and gender = 'M'; /* 나이가 18 이상이고 성별이 남성인 경우 */
run;
data filtered_data;
    set data1;
    if age >= 18 or income > 50000; /* 나이가 18 이상이거나 소득이 50000 초과인 경우 */
run;

3. IN 연산자 사용하기

 

특정 값의 목록에 포함된 경우를 추출하고 싶을 때 IN 연산자를 사용할 수 있습니다.

data selected_data;
    set data1;
    if country in ('USA', 'Canada', 'Mexico'); /* country가 USA, Canada, Mexico 중 하나인 경우 */
run;

4. IF-THEN 구문을 사용해 조건별 변수 생성

조건에 맞게 특정 변수 값을 생성하거나 수정하고자 할 때 IF-THEN 구문을 사용할 수 있습니다.

data categorized_data;
    set data1;
    if age >= 18 then age_group = 'Adult';
    else age_group = 'Minor';
run;

위 예제에서는 age가 18 이상인 경우 age_group을 'Adult'로, 그렇지 않으면 'Minor'로 설정합니다.

요약

  • 단일 조건: if age >= 18;
  • 여러 조건: if age >= 18 and gender = 'M';
  • 값 목록: if country in ('USA', 'Canada', 'Mexico');
  • 조건별 변수 생성: if age >= 18 then age_group = 'Adult';