포스팅 목차
o REPLACE 구문
1. 목 적
REPLACE 구문은 추가로 새로운 SAS 데이터 세트를 생성하지 않고 기존에 존재하는 SAS 데이터 세트에 존재하는 관측치를 대체(갱신)한다.
명시적 REPLACE 구문을 사용하면 관측치에 대한 기본 대체 작업을 수행하지 않는다. 데이터 스텝에서 REMOVE 구문이 포함되면, 프로그램에서 지정되는 모든 데이터 세트의 출력 작업을 명시적으로 작성해야 한다.
2. 문 법 (MODIFY 구문과 함께 사용) :
REPLACE <. . .data-set-name-n>; |
1) 인수 사용하지 않음
인수를 별도로 지정하지 않으면 REPLACE 구문은 DATA 구문에 지정된 모든 데이터 세트의 동일한 물리적 위치에 현재 관측치를 작성한다.
2) data-set-name
관측치가 작성되는 데이터세트를 지정하라. 데이터 세트 이름을 대신하여 운영시스템 환경에서 사용되는 파일의 실제 경로명을 지정할 수 있는데, 경로명은 단일 또는 이중 인용부호 안에 작성해야 한다.
필요사항 : | 데이터세트 이름은 DATA 구문과 MODIFY 구문에 함께 존재해야 한다. |
Tip : | 데이터세트 이름을 대신하여 운영시스템 환경에서 사용되는 파일의 실제 경로명을 지정 할 수 있다. 경로명은 단일 또는 이중인용부호 안에 작성해야 한다. |
3. 범 주
SAS 기본 구문 (실행 구문)
4. 상세 설명
명시적 REPLACE 구문을 사용하면 관측치에 대한 기본 대체를 제어한다. 데이터 스텝에서 REMOVE 구문이 포함되면, 프로그램에서 지정되는 모든 데이터세트의 출력을 명시적으로 작성해야 한다.
5. 비교 사항
- OUTPUT, REPLACE, REMOVE 구문이 사용되면 데이터스텝의 종료 시점에 기본적으로 적용되는 암묵적 출력 작업을 수행하지 않는다. (일반적으로 OUTPUT 구문이 기본 작업이지만, MODIFY 구문이 사용 될 때에는 REPLACE 구문이 기본작업이 된다.)
- OUTPUT, REPLACE, REMOVE 구문은 서로 독립적으로 작업을 수행한다. 적용 순서가 논리적이면 다수의 구문이 동일 관측치에 적용 될 수 있다.
- OUTPUT 구문과 REPLACE 또는 REMOVE 구문이 해당 관측치에 함께 적용되면, 관측치의 포인터의 위치를 정확하게 유지하기 위하여 OUTPUT 작업을 마지막으로 실행하라.
- REPLACE 구문은 동일 물리적 위치의 관측치를 대체하지만, OUTPUT 구문은 데이터세트의 하단에 새로운 관측치를 추가로 작성한다.
- REPLACE 구문은 MODIFY 구문과 함께 사용된다. OUTPUT 구문은 MODIFY 구문과 함께 사용 될 수도 있고, MODIFY 구문 없이 단독으로 사용이 가능하다.
6. 관련 구문
구문명 | 구문내용 |
BY 구문 | BY 구문은 데이터 세트에서 SET, MERGE, UPDATE 구문의 그룹별 관측치에 대한 처리 방식을 지정하고, 특수한 그룹화 변수를 내부적으로 생성한다. |
MERGE 구문 | MERGE 구문은 다수의 SAS 데이터 세트의 관측치를 하나의 관측치로 결합하여 새로운 SAS 데이터 세트를 생성한다. |
MISSING 구문 | MISSING 구문은 입력 데이터에서 수치형 데이터의 특별한 결측치 값을 표현하기 위한 문자를 지정한다. |
MODIFY 구문 | MODIFY 구문은 새로운 SAS 데이터 세트를 추가로 생성하지 않고 기존에 존재하는 SAS 데이터 세트의 관측치에 대하여 대체, 삭제, 추가 작업을 수행한다. |
OUTPUT 구문 | SAS 데이터 세트에 현재 처리 중인 관측치를 작성한다. OUTPUT 구문은 데이터 스텝의 종료 시점에 작성되지 않고, OUTPUT 구문이 실행되는 즉시 데이터 세트에 현재 관측치를 작성한다. |
REMOVE 구문 | SAS 데이터 세트에서 관측치를 삭제한다. |
REPLACE 구문 | 추가로 새로운 SAS 데이터 세트를 생성하지 않고 기존에 존재하는 SAS 데이터 세트에 존재하는 관측치를 대체(갱신)한다. |
SET 구문 | SET 구문은 하나 이상의 SAS 데이터 세트에서 관측치를 읽는다. |
UPDATE 구문 | Master 파일의 데이터 항목을 변경 및 삽입하기 위하여 Master 파일을 기준으로 Transactions 파일의 데이터 값으로 갱신(Update) 또는 삽입(Insert) 작업을 수행한다. |
[SAS Statement] SAS 데이터 스텝 구문 사전 목록]
7. 예 제
예제 : 관측치 대체하기
다음 예제는 TRANS 데이터세트의 값을 사용하여 MASTER 데이터 세트에 존재하는 전화번호를 업데이트하거나, MASTER 데이터 세트의 하단에 새로운 관측치를 추가한다. SYSRC 자동호출 매크로는 MASTER 데이터 세트의 데이터 검색 결과에 대한 _IORC_의 값을 반환한다. (SYSRC는 SAS 자동호출 매크로 라이브러리의 일부이다.) 결과 SAS데이터세트는 코드 아래에 나온다.
SAS Statements |
data master;
input FirstName $ id $ PhoneNumber;
datalines;
Kevin ABCjkh 904
Sandi defsns 905
Terry ghitDP 951
Jason jklJWM 962
;
data trans;
input FirstName $ id $ PhoneNumber;
datalines;
. ABCjkh 2904
. defsns 2905
Madeline mnombt 2983
;
data master;
modify master trans;
by id;
/* Master에서 관측치를 발견 */
if _iorc_ = %sysrc(_sok) then replace;
/* Master에서 관측치를 발견하지 못함 */
else if _iorc_ = %sysrc(_dsenmr) then
do;
/* _error_를 초기화 */
_error_=0;
/* _iorc_를 초기화 */
_iorc_=0;
/* Master에 관측치를 출력 */
output;
end;
run;
proc print data=master;
title 'MASTER with New Phone Numbers';
run;
Results |
MASTER with New Phone Numbers 3
First Phone
OBS Name id Number
1 Kevin ABCjkh 2904
2 Sandi defsns 2905
3 Terry ghitDP 951
4 Jason jklJWM 962
5 Madeline mnombt 2983
[SAS Statement] SAS 데이터 스텝 구문 사전 목록] |
SAS 함수(SAS Function) 리스트 링크 |
'SAS > SAS 구문사전' 카테고리의 다른 글
【SAS Statement】 RETAIN 구문 (0) | 2022.02.05 |
---|---|
[SAS Statement] RESETLINE 구문 (0) | 2022.02.05 |
【SAS Statement】 RENAME 구문 (0) | 2022.02.05 |
【SAS Statement】 REMOVE 구문 (0) | 2022.02.05 |
【SAS Statement】 REDIRECT 구문 (0) | 2022.02.05 |
댓글