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라는 별도 데이터셋에 저장합니다.
'SAS연습200제 > SAS데이터셋활용하기' 카테고리의 다른 글
Q_02_12. 두 데이터셋을 옆으로 합치기 -같은 변수 있는 경우 (0) | 2025.03.18 |
---|---|
Q_02_11. 두 데이터셋을 옆으로 합치기 - MERGE 문 사용 (0) | 2025.03.18 |
Q_02_09. 두 DATASET을 아래위로 합치기 - SET a b/BY 문 (0) | 2025.03.18 |
Q_02_08. 데이터셋 아래 위로 합치기 - 데이터 길이가 다른 경우 (0) | 2025.03.18 |
Q_02_07. 데이터셋 아래 위로 합치기 - 다른 변수가 있는 경우 (0) | 2025.03.18 |