포스팅 목차
o NOTE
SAS 데이터 세트의 현재 관측치에 대한 관측치 아이디를 반환한다.
Category: | 외부 파일 접근 및 처리 함수 (External Files) |
문 법
NOTE (data-set-id) |
Arguments
string
는 OPEN함수에 의해 반환되는 인식자.
참 고
* 관측치 Number를 출력하기 위해 CUROBS를 호출한다.
* 관측치를 Mark(표시)하기 위해 NOTE함수를 호출한다.
* NOTEID에 상응하는 관측치를 가르치키 위해 POINT를 호출한다.
관련 함수
함수명 | 함수내용 |
CEXIST |
SAS 카탈로그나 SAS 카탈로그 엔트리의 존재성을 확인후에 반환한다. |
CUROBS | 현재 관측치(메모리상에있는 관측치)의 관측치 번호를 반환한다. |
DCLOSE |
DOPEN 함수에 의해 열었던 디렉토리를 닫는다. |
DNUM |
디렉토리에서 멤버의 수를 반환한다. |
DOPEN | 디렉토리 OPEN하여서 0보다 큰 directory identifier value을 반환한다. |
DREAD |
디렉토리 구성원의 이름을 반환한다. |
EXIST |
SAS 데이터 라이브러리 멤버의 존재성을 확인한다. |
FCLOSE |
외부파일, 디렉토리, 디렉토리 멤버를 닫는다. |
FETCH | SAS 데이터 세트로부터 현재 관측치 다음의 관측치를 데이터 세트 데이터 벡터(DDV) 안으로 관측치를 읽는다. |
FETCHOBS | SAS 데이터 세트로부터 지정한 관측치를 데이터 SET 데이터 벡터(DDV)로 읽는다. |
FGET |
파일 데이터 벡터(FDB)로부터 변수에 데이터를 복사한다. |
FILEEXIST |
외부 파일의 물리적 이름에 의해 외부 파일의 존재성을 확인한다. |
FILENAME | SAS 파일 참조자(fileref)를 외부 파일 또는 출력 장치와 연결한다. 이와 반대로 파일 참조자(Fileref)와 외부 파일의 관계를 해제할 수 있으며, 외부 파일 속성을 출력할 수 있다. |
FILEREF |
현재 SAS섹션에 fileref이 할당되었는지 확인한다. |
FOPEN |
외부파일을 연다. |
FPOS |
파일 데이터 버퍼(FDB)에서 칼럼 포인터의 위치를 설정한다. |
FPUT |
SAS 데이터 세트에서 FDB로 데이터를 이동한다. |
FREAD | 외부파일에서 FDB로 레코드를 읽는다. |
FREWIND |
파일의 시작에 파일 포인터를 배치하고 값을 반환한다. |
FSEP |
FGET함수를 위한 구분자를 설정한다. |
FWRITE |
외부파일에 레코드를 기록한다. |
MOPEN |
디렉토리 아이디와 멤버 이름에 의해 파일을 연다. |
NOTE |
SAS 데이터 세트의 현재 관측치에 대한 관측치 아이디를 반환한다. |
OPEN | SAS 데이터 세트를 OPEN하고, 데이터 세트 ID를 반환한다. |
POINT | NOTE함수에 의해 확인된 위치에 관측치를 이동시키고, 값을 반환한다. |
SYSMSG | 마지막 데이터 세트나 외부 파일 함수 실행으로부터 에러메시지나 경고 메시지 반환한다. |
예 제
10번째 관측치를 읽은후에 note함수를 사용하여 표시를 한후에 ,rewind함수를 사용하여 포인터를 처음으로 이동하여 첫 번째 관측치를 읽고, 다시 POINT함수를 이용하여 위에서 표시해 놓은 위치(10번째)로 이동하여 그 위치를 출력한다.
SAS Statements |
%macro back;
%let dsid = %sysfunc(open(sasuser.fitness,i));
%put DSID = &dsid;
* 데이터 세트에서 관측치 10번째로 이동(DDV로 10번째 관측치를 읽는다);
%let rc = %sysfunc(fetchobs(&dsid,10));
%if %sysfunc(abs(&rc)) %then %put FETCHOBS FAILED;
%else %do;
* 로그에 현재 관측치 번호를 출력;
%let cur = %sysfunc(curobs(&dsid));
%put CUROBS = &cur;
* Note 함수를 이용하여 관측치 10를 표시(MARK);
%let noteid = %sysfunc(note(&dsid));
%put noteid = ¬eid;
* Rewind함수를 이용하여 데이터 세트의 시작에 포인터를 Rewind한다;
%let rc = %sysfunc(rewind(&dsid));
* DDV에 첫번째 관측치를 FETCH한다;
%let rc = %sysfunc(fetch(&dsid));
* 첫번째 관측치 넘버를 출력;
%let cur = %sysfunc(curobs(&dsid));
%put CUROBS = &cur;
* NOTE함수에 의해 앞에서 마크된 관측치 10에 POINT위치를 이동한다;
%let rc = %sysfunc(point(&dsid,¬eid));
* DDV에 관측치를 FETCH한다;
%let rc = %sysfunc(fetch(&dsid));
* NOTE함수에 의해 마크된 관측치 넘버 10을 출력;
%let cur = %sysfunc(curobs(&dsid));
%put CUROBS = &cur;
%end;
%if (&dsid > 0) %then %let rc=%sysfunc(close(&dsid));
%mend;
%back;
Results |
DSID=1
CUROBS=10
noteid=1
CUROBS=1
CUROBS=10
SAS 함수(SAS Function) 리스트 링크 |
엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크 |
SAS 데이터 스텝 구문 리스트(SAS Data Step Statement) |
반응형
'SAS > SAS 함수' 카테고리의 다른 글
【SAS 함수】 294. NOTGRAPH (0) | 2021.10.06 |
---|---|
【SAS 함수】 293. NOTFIRST (0) | 2021.10.06 |
【SAS 함수】 291. NOTDIGIT (0) | 2021.10.06 |
【SAS 함수】 290. NOTCNTRL (0) | 2021.10.06 |
【SAS 함수】 289. NOTALPHA (0) | 2021.10.06 |
댓글