< Q_02_10. 동일한 데이터셋에서 처음과 마지막 관측치 구하기 - SET a/BY 문
본문 바로가기
SAS연습200제/SAS데이터셋활용하기

Q_02_10. 동일한 데이터셋에서 처음과 마지막 관측치 구하기 - SET a/BY 문

by sas 2025. 3. 18.

SAS에서 동일한 데이터셋에서 처음과 마지막 관측치를 BY 문과 함께 구하려면 FIRST.와 LAST. 변수를 사용하면 됩니다. 이 변수를 사용하면 각 BY 그룹의 첫 번째 및 마지막 관측치를 식별할 수 있습니다.

예제 코드

예를 들어, data1 데이터셋에서 id 변수별로 처음과 마지막 관측치를 추출하고자 한다면 다음과 같은 코드를 사용할 수 있습니다.

data first_last_obs;
    set data1;
    by id;
    if first.id then output first_obs; /* 처음 관측치를 first_obs 데이터셋에 저장 */
    if last.id then output last_obs;   /* 마지막 관측치를 last_obs 데이터셋에 저장 */
run;

설명

  • by id; 문은 id 변수를 기준으로 그룹을 지정합니다. SET 문을 통해 BY 변수를 사용할 때는 반드시 사전 정렬이 필요합니다. 따라서, proc sort로 id 변수를 기준으로 먼저 정렬해야 합니다.
  • first.id는 각 id 그룹의 첫 번째 관측치에 대해 TRUE로 설정되며, 이때만 first_obs에 기록됩니다.
  • last.id는 각 id 그룹의 마지막 관측치에 대해 TRUE로 설정되며, 이때만 last_obs에 기록됩니다.

전체 코드 예제

proc sort data=data1;
    by id;
run;

data first_obs last_obs;
    set data1;
    by id;
    if first.id then output first_obs;
    if last.id then output last_obs;
run;

이 코드는 id 그룹별로 처음과 마지막 관측치를 각각 first_obs와 last_obs라는 별도 데이터셋에 저장합니다.