본문 바로가기
SAS/SAS 구문사전

【SAS Statement】 WINDOW 구문

by 기서무나구물 2022. 2. 8.

포스팅 목차

    o WINDOW 구문

     


    1. 목 적 

       WINDOW 구문은 운영프로그램에 해당하는 사용자 정의 윈도우 창을 생성하여서 사용자 기반의 윈도우을 생성하여 활용하도록 지원한다.

     

    • 사용자 정의 윈도우를 생성하기 위하여 SAS 윈도우환경, 대화식 라인 모드, 비대화식 모드 에서 WINDOW 구문을 사용할 수 있지만, WINDOW 구문은 운영환경에 따라 지정할 수 있는 기능에는 차이가 있다.
    • 생성한 윈도우는 텍스트를 표시하고, 입력 작업 수행을 할 수 있으며, 명령어와 메시지 라인을 화면에 출력할 수 있다.
    • 윈도우 이름은 윈도우 상단에 표시된다.
    • 생성한 윈도우에 대하여 명령어와 function keys를 함께 사용하라.
    • 윈도우 정의는 WINDOW 구문을 포함하는 데이터 스텝에만 영향을 미친다.
    • DISPLAY 구문으로 윈도우를 표시하기 전에 윈도우를 정의하라.
    • WINDOW 구문으로 정의된 윈도우를 표시하기 위하여 DISPLAY 구문을 사용하라.

     

       DISPLAY 구문은 WINDOW 구문에서 정의한 윈도우를 화면에 출력할 수 있도록 지원하는데,  윈도우를 표시할 때 그 위에 다른 창을 표시하거나 데이터 스텝을 종료할 때까지 창은 계속 표시된다. 값을 입력할 수 있는 입력 필드를 포함하고 있는 윈도우가 노출 된 경우에, 다음 화면(Display)으로 넘어가기 위해서는 각각의 보호되지 않은 필드에 값을 입력하거나 모든 필드에 ENTER 키를 눌러야 한다. 윈도우가 표시되는 동안에 다른 윈도우를 보거나 현재 윈도우의 크기 변경 등을 하기 위하여 명령어 또는 단축키를 사용할 수 있다.

     

       DISPLAY 구문을 포함하는 데이터 스텝은 아래의 문장이 완료될 때까지 계속 실행 상태로 유지된다.

    • SET, MERGE, MODIFY, UPDATE 또는 INPUT 구문에 의해 읽은 마지막 관측치가 처리 될 때까지.
    • STOP 또는 ABORT 구문이 실행될 때까지
    • END명령어가 실행될 때까지.

     


    2. 문 법 

    WINDOW window  field-definition(s);

    WINDOW window  group-definition(s);

    1) window

    윈도우 창의 이름을 지정한다.

    제한사항 : 윈도우 창의 이름은 SAS 이름 생성 규칙을 따라야 한다.

     


    2) window-options

       전체적인 윈도우의 특성을 지정한다. 필드 또는 GROUP= specifications를 지정하기 전에 아래의 window-options을 지정하라.

     

       (1) COLOR=color

         윈도우 배경색을 지정한다. 다음의 색상을 사용할 수 있다.

    BLACK MAGENTA
    BLUE ORANGE
    BROWN PINK
    CYAN RED
    GRAY WHITE
    GREEN YELLOW
    기본사항  COLOR= 옵션을 사용하여 색을 지정하지 않으면, 윈도우의 배경색과 필드의 색은 해당 운영 환경에 의존한다.
    Tip : 색상 표현은 사용되는 모니터에 따라서 다를 수 있다. COLOR= 옵션은 흑백 모니터에는 특별한 영향을 미치지 않는다.

     

       (2) COLUMNS=columns

         윈도우 창에서 열의 개수를 지정한다.

    기본사항  인수의 값을 지정하지 않으면 모니터의 나머지 모든 열을 해당 윈도우에서 사용한다. 사용 가능한 열의 수는 모니터에 따라 달라진다.

     

       (3) ICOLUMN=column

         모니터에서 윈도우가 표시되는 최초열을 지정한다. SAS는 기본적으로 1열에 윈도우를 표시한다.

    기본사항  SAS는 기본적으로 1열에 윈도우를 표시한다.

     

       (4) IROW=row

         모니터에서 윈도우가 표시되는 최초행을 지정한다. SAS는 기본적으로 1행에 윈도우를 표시한다.

    기본사항  SAS는 기본적으로 1에 윈도우를 표시한다.

     

       (5) KEYS=<catalog.>keys-entry

         윈도우에서 사용하기 위한 단축키(function key)에 대한 정의를 관리하는 KEYS 엔트리의 이름을 지정한다. SAS는 기본적으로 KEYS윈도우에서 정의되어 있는 현재 단축키 설정을 사용한다.

    기본사항  SAS는 기본적으로 KEYS윈도우에서 정의되어 있는 현재 단축키 설정을 사용한다.
    Tip : 단지 엔트리 이름만 지정하면, SAS는 지정된 이름의 KEYS 엔트리를 SASUSER.PROFILE에서 검색한다. 다음 형태로 KEYS 엔트리의 3단계 이름을 지정 할 수 있다.

    libref.catalog.keys-entry
    Tip : 윈도우에 대한 단축키 정의 집합을 생성하기 위하여 KEYS 윈도우를 사용하라. 원하는 형식의 Keys를 정의하고, SASUSER.PROFILE 카탈로그에 대한 정의 또는 사용자가 지정한 SAS 라이브러리와 카탈로그에 대한 정의를 저장하기 위하여 SAVE 명령어를 사용하라.

     

       (6) MENU=<catalog.>pmenu-entry

         PMENU 프로시져를 사용하여 생성되는 메뉴(pmenu)의 이름을 지정하라.

    Tip : 단지 엔트리 이름만 지정하면, SAS는 지정된 이름의 PMENU 엔트리를 SASUSER.PROFILE에서 검색한다. 다음 형태로 PMENU 엔트리의 3단계 이름을 지정 할 수 있다.

    libref.catalog.pmenu-entry

     

       (7) ROWS=rows

         윈도우에서 행의 개수를 지정한다. ROWS 인수의 값을 지정하지 않으면 모니터의 나머지 모든 행을 윈도우에서 사용한다.

    기본사항  ROWS 인수의 값을 지정하지 않으면 모니터의 나머지 모든 행을 윈도우에서 사용한다.
    Tip : 사용 가능한 행의 수는 사용되는 모니터의 유형에 따라 달라진다.

     


    3) field-definition(s)

       윈도우 또는 관련 필드의 그룹 내에서 표시되는 변수 또는 문자열에 대하여 지정 및 설명한다. 윈도우 또는 그룹은 여러 개의 필드를 포함할 수 있고, 여러 그룹 또는 윈도우에서 동일한 필드를 정의할 수 있다.

    Tip : 윈도우 또는 그룹은 여러 개의 필드를 포함 할 수 있고, 여러 그룹 또는 윈도우에서 동일한 필드를 정의 할 수 있다.
    Tip : 다중 field-definition을 지정 할 수 있다.
    관련사항 : 필드정의 참조

     

    4) group-definition(s)

       그룹을 지정하고, 그룹 내의 모든 필드를 정의한다. 그룹 정의는 2개 부분으로 구성된다. GROUP=옵션과 하나 이상의 필드 정의

     

       (1) GROUP=group

         관계된 필드의 그룹을 지정한다. 하나의 창 안에서 다수의 그룹을 지정하여서 변경되지 않는 윈도우 옵션을 중복하여 지정하는 것을 방지하고, 관련된 디스프레이의 추적하는 것을 도와준다.

         동시에 표시하기 원하는 윈도우의 모든 필드를 그룹으로 지정할 수 있으며, 개별 그룹의 이름을 지정하여 동일한 창 내에서 서로 다른 시점에서 다양한 필드의 그룹을 표시 할 수 있다. DISPLAY 구문에서 표시하기 위한 그룹을 window.group 형태로 지정하여서 선택 할 수 있다.

    제한사항 : group은 SAS 이름 규칙을 따라야 한다.
    기본사항 : 윈도우는 기본적으로 이름을 지정하지 않은 하나의 필드 그룹을 포함한다.
    Tip : DISPLAY 구문에서 그룹을 참조하는 경우에 window.group 형식으로 이름을 작성하라.
    Tip : 그룹은 동시에 표시하기 원하는 윈도우의 모든 필드를 포함한다. 각 그룹의 이름을 지정하여 서로 다른 시점에서 동일한 창 내에서 다양한 필드의 그룹을 표시한다. DISPLAY 구문에서 표시하기 위한 그룹을 window.group 형태로 지정하여 선택하라.
    Tip :  안에서 여러 그룹을 지정하여서 변경되지 않는 윈도우 옵션을 중복하여 지정하는 것을 방지하고, 관련된 디스프레이의 추적하는 것을 도와준다. 예를 들어, 데이터 값을 검증하기 한 윈도우를 정의하기 위하여, STANDARD 그룹에서 데이터 세트의 데이터 값에 대한 변수와 메시지의 출력을 배열하라. 데이터 값이 검증하기 원하는 조건에 해당하는 경우에 메시지를 표시하기 위하여 CHECKIT 그룹에서 다른 메시지의 출력을 배열하라.

     


    3. 상세설명

     

    1) 기본사항

    운영환경정보 : WINDOW 구문 운영환경에서 지정 할 수 있는  가지 기능이 있다. 상세한 내용은 운영환경에 대한 SAS 도움말 참조

     

    • 사용자 정의 윈도우를 생성하기 위하여 SAS 윈도우환경, 대화식 라인 모드, 비대화식 모드 에서 WINDOW 구문을 사용 할 수 있다. 
    • 생성한 윈도우는 텍스트를 표시하고, 입력 작업 수행을 할 수 있다. 
    • 윈도우는 명령어와 메시지 라인을 가지고 있다. 
    • 윈도우 이름은 윈도우 상단에 표시된다. 
    • 생성한 윈도우에 대하여 명령어와 function keys를 함께 사용하라. 
    • 윈도우 정의는 WINDOW 구문을 포함하는 데이터 스텝에만 영향을 미친다. 
    • DISPLAY 구문으로 윈도우를 표시하기 전에 윈도우를 정의하라.
    • WINDOW 구문으로 정의된 윈도우를 표시하기 위하여 DISPLAY 구문을 사용하라. 좀 더 상세한 정보는 DISPLAY 구문 참조.

     


    2) 필드 정의

       화면에 표시하기 위한 변수와 문자열, 해당 항목의 위치와 속성 등을 확인하기 위하여 필드 정의를 사용한다. 문자열은 인용부호 안에 작성해야 하고, 항목의 위치는 시작하는 행(또는 라인) 과 열로 정의되며, 속성은 색상, 필드에 값 입력 여부, 강조와 같은 특성을 지정할 수 있다.

       변수값과 문자열을 개별적으로 포함하는 필드를 정의할 수 있는데, 

       변수값에 대한 필드 정의 형태는 다음과 같고,

     variable  options

     

       문자열에 대한 형태는 다음과 같다.

     'character-string' options

     

       (1) row column

         변수 또는 문자열의 위치를 지정한다.

    제한사항 : 윈도우 또는 그룹의 번째 필드에서 행을 생략하면, SAS 윈도우의 번째 행을 사용한다. 이후 필드 지정자에서 행을 삭제하면, SAS 이전의 필드가 포함된 행에 계속 존재한다. 열을 생략하면, SAS 번째 열을 사용한다. (윈도우의 왼쪽 테두리)
    Tip : 또는 중에 하나를 먼저 지정 있지만, 문서 예제는 행을 먼저 지정한다.

     

         SAS는 포인터를 사용하여 윈도우의 위치를 추적한다. 예를 들어, 윈도우의 두 번째 열, 세 번째 행에 변수의 값을 작성하도록 지시하면, 그 값을 작성하기 위하여 포인터는 2행 3열로 이동한다. 필드의 적합한 위치로 포인터를 이동하기 위하여 다음에 나열된 포인터 조절자를 사용해야 한다.

         필드 정의에서, 행은 다음의 행 포인터 조절자 중의 하나를 사용할 수 있다.

     

    • #n

         윈도우 내에서 포인터를 n번째 행으로 이동한다.

    범위 : n 양의 정수

     

    • #numeric-variable

         윈도우 내에서 포인터를 수치형 변수를 사용하여 주어진 행으로 이동한다.

    제한사항 : #numeric-variable 양수이어야 한다. 값이 정수가 아니면, 소수 부분은 삭제되고 정수 부분만 사용된다.

     

    • #(expression)

         윈도우 내에서 포인터를 표현식을 사용하여 주어진 행으로 이동한다.

    제한사항 : 표현식은 배열참조를 사용 있고, 계산 결과는 양의 정수이어야 한다. 표현식은 괄호 안에 작성해야 한다.

     

    • /

         다음 행의 첫 번째 열로 포인터를 이동한다.

         필드 정의에서, 열은 다음의 열포인터 조절자 중에서 하나를 사용할 수 있다.

     

    • @n

         윈도우 내에서 포인터를 n번째 열로 이동한다.

    제한사항 : n 양수이어야 한다.

     

    • @numeric-variable

         윈도우 내에서 포인터를 수치형 변수를 사용하여 주어진 열로 이동한다.

    제한사항 : numeric-variable 양수이어야 한다. 양수가 아니면, 소수부분을 삭제하고 정수부분을 사용한다.

     

    • @(expression)

         윈도우 내에서 포인터를 표현식을 사용하여 주어진 열로 이동한다.

    제한사항 : 표현식은 배열참조 사용 있고, 계산결과는 양의 정수이어야 한다. 표현식은 괄호 안에 작성해야 한다.

     

    • +n

         포인터를 n개 열 만큼 오른쪽으로 이동한다.

    범위 : n 양의 정수

     

    • +numeric-variable

         포인터를 numeric-variable 의 값에 지정된 열 만큼 오른쪽으로 이동한다.

    제한사항 : +numeric-variable 양수 또는 음수이어야 한다. 값이 정수가 아니면, 소수 부분은 삭제하고 정수 부분을 사용한다.

     


       (2) variable

         윈도우가 표시될 때 그 위치에서 입력되는 값을 할당하거나, 관측값을 표시하기 위한 변수를 지정한다. variable는 변수 이름 또는 배열 참조에 대한 이름을 지정할 수 있다.

    Tip : variable 변수 이름 또는 배열참조의 이름을 사용 있다.
    Tip : 필드에서 변수값이 표시되는 것은 허용하지만 사용자에 의해 변경되지 않도록 지정하기 위하여 PROTECT=옵션을 사용하라. ( 섹션 후반의 설명 참조) DISPLAY 구문에서 NOINPUT 옵션을 지정하여 DISPLAY 구문의 현재 실행에 대하여 전체 윈도우 또는 그룹을 보호 있다.
    Tip : 필드 정의에 새로운 변수 이름이 존재하면, 변수는 생성되는 데이터 세트에 추가된다.(KEEP 또는 DROP옵션을 따로 지정하지 않으면)

     


       (3) format

         변수에 대한 출력형식을 지정한다.

    기본사항 : Format 생략하면, SAS 다른 곳에서 지정된 (, ATTRIB, INFORMAT, FORMAT 구문 또는 데이터 세트에 영구적으로 저장된) informat format 사용하거나 SAS 기본 informat format 사용한다.
    Tip : 값을 변경하지 못하는 필드에서 변수를 표시하면(, PROTECT=YES옵션이 적용된), format SAS format 또는 FORMAT 프로시져로 정의한 출력형식을 사용 있다.
    Tip : 필드가 변수를 표시하거나 입력이 허용되면, INFORMAT 구문 또는 ATTRIB 구문에서 입력형식을 지정하거나, informat 대응되는 $CHAR. 또는 TIME. 같은 출력형식을 사용해야 한다.
    Tip : Format 지정되면, 대응하는 Informat 입력이 가능한 필드에 자동적으로 할당된다.
    Tip : WINDOW 구문의 Format Informat 다른 곳에서 지정된 Informat Format 제어한다.

     


       (4) 'character-string'

         표시하기 위한 문자열의 텍스트를 지정한다. 문자열은 인용부호 안에 작성해야 하며, 문자열이 포함된 필드에는 값을 입력할 수 없다.

    제한사항 : 문자열은 인용부호 안에 작성해야 한다.
    제한사항 : 문자열이 포함된 필드에 값을 입력 없다.

     


       (5) options

         필드 정의 속성을 지정하라.

    • ATTR=highlighting-attribute

         필드에서 아래의 강조 표시 속성을 정의한다.

    별칭 : A=
    제한사항 : 다수의 강조 표시 속성을 지정하기 위하여 ATTR=(highlighting-attribute-1,...) 형태로 지정하라. 사용 가능한 강조 표시 속성은 사용되는 모니터 형태에 따라 달라진다.

     

         - BLINK : 필드를 공백으로 만든다.

         - HIGHLIGHT : 고밀도로 필드를 표시한다.

         - REV_VIDEO : 필드를 역상으로 표시한다.

         - UNDERLINE : 필드에 밑줄을 표시한다.

     

    • AUTOSKIP=YES | NO  (별칭 : AUTO=)

         필드의 모든 위치에 데이터를 입력한 경우에 현재 윈도우 또는 그룹에서 바로 다음에 보호되지 않은 필드로 커서를 자동으로 이동할지 여부를 관리한다.

    별칭 : AUTO=
    기본값 : NO

     

         - YES : 커서가 바로 다음의 보호되지 않은 필드로 자동 이동하도록 지정.

         - NO : 커서가 자동적으로 이동하지 않도록 지정.

     

    • COLOR=color  (별칭 : C=)

         변수 또는 문자열의 색상을 지정한다. 다음 색 중의 하나를 지정할 수 있다.

    BLACK MAGENTA
    BLUE ORANGE
    BROWN PINK
    CYAN RED
    GRAY WHITE
    GREEN YELLOW
    별칭 : C=
    기본값 : WHITE
    Tip : 색상 표현은 사용되는 모니터에 따라서 달라 있다.         
    Tip : COLOR= 흑백 모니터에는 영향을 미치지 않는다.
    • DISPLAY=YES | NO

         필드의 항목 표시 여부를 관리한다.

    기본값 : YES

         - YES : 필드 안에 문자를 표시하도록 지정.

         - NO : 입력된 문자가 표시되지 않도록 지정.

     

    • PERSIST=YES | NO

         DISPLAY 구문에서 BLANK 옵션이 실행되기 전까지 데이터 스텝의 동일 반복 내에서 DISPLAY 구문이 모두 실행되는 동안에 필드를 계속 표시할지 여부를 관리한다. PERSIST= 옵션은 필드의 위치가 DISPLAY 구문의 개별 실행마다 변경되는 경우에 아주 유용하다.

    기본값 : NO
    Tip : PERSIST= 옵션은 필드의 위치가 DISPLAY 구문의 개별 실행마다 변경되는 경우에 아주 유용하다.
    주요기능 : 예제3 : 지속되는 필드와 지속되지 않는 필드

         - YES : DISPLAY 구문의 개별 실행에서 현재 DISPLAY 구문이 표시하기 위하여 지정한 내용과 이전에 표시된 필드의 내용을 모두 함께 표시하도록 지정.

         - NO : DISPLAY 구문의 개별 실행에서 단지 현재 DISPLAY 구문이 표시하기 위하여 지정한 내용만을 표시하도록 지정.

     

    • PROTECT=YES | NO  (별칭 : P=)

         필드에 정보 입력에 대한 가능 여부를 지정한다. 변수를 포함하고 있는 필드에 대하여 PROTECT= 옵션을 사용하면 유용하다. 텍스트를 포함하는 필드는 자동으로 보호된다.

    별칭 : P=
    기본값 : No
    Tip : 변수를 포함하는 필드에 대하여 PROTECT= 옵션을 사용하라. 텍스트를 포함하는 필드는 자동적으로 보호된다.

         - YES : 정보를 입력할 수 없도록 지정.

         - NO : 정보를 입력할 수 있도록 지정.

     

    • REQUIRED=YES | NO

         필드가 공란으로 존재할 수 있는지 여부를 지정한다. REQUIRED=YES 옵션으로 정의된 필드를 공백으로 유지하려고 하면, 윈도우에서 그 이후의 필드에 값을 입력할 수 없다.

    기본값 : No
    Tip : REQUIRED=YES 옵션으로 정의된 필드를 공백으로 유지하려고 시도하면, 윈도우에서 이후의 필드에 값을 입력 없다.

         - NO : 필드가 공백으로 존재할 수 있도록 지정.

         - YES : 반드시 필드에 값을 입력하도록 지정.

     


    3) Automatic Variables

       WINDOW 구문은 2개의 자동 변수를 생성한다.: _CMD_ and _MSG_.

     

       (1) CMD

         윈도우 명령어 라인에서 마지막으로 실행하였으나 윈도우에 의해 인식되지 않는 명령어를 저장한다.

    Tip : _CMD_ 길이 80 바이트의 문자변수이다. _CMD_ 값은 DISPLAY 구문의 개별 실행 전에 ''(공백)으로 설정된다.
    주요기능 : 예제4 : 메시지 보내기

     

       (2) MSG

         윈도우의 메시지 영역에 표시하기 위하여 지정하기 위한 메시지를 지정한다.

    Tip : _MSG_ 길이 80 바이트의 문자변수이다. _MSG_ 값은 DISPLAY 구문의 개별 실행 전에 ''(공백)으로 설정된다.
    주요기능 : 예제4 : 메시지 보내기

     


    4) 윈도우 표시하기

     

    DISPLAY 구문은 윈도우를 출력 있도록 한다. 윈도우를 표시 , 위에 다른 창을 표시하거나 데이터 스텝을 종료 때까지 창은 계속 표시된다. 값을 입력 있는 필드를 포함하는 윈도우를 표시 때에, 다음 표시(Display) 진행하도록 각각의 보호되지 않은 필드에서 값을 입력하거나 ENTER 키를 눌러라. 윈도우가 표시되는 동안에 다른 윈도우를 보거나 현재 윈도우의 크기 변경 등을 하기 위하여 명령어와 단축키를 사용 있다. 보호되지 않은 모든 필드에서 ENTER 입력해야(눌러야) 실행이 다음 표시 화면으로 넘어간다.

    DISPLAY 구문을 포함하는 데이터 스텝은 아래의 문장이 완료 때까지 계속 실행 상태로 유지된다.

    • SET, MERGE, MODIFY, UPDATE 또는 INPUT 구문에 의해 읽은 마지막 관측치가 처리 될 때까지.
    • STOP 또는 ABORT 구문이 실행 될 때까지
    • END명령어가 실행 될 때까지.

     


    4. 비교 사항

    • WINDOW 구문은 윈도우를 생성하고, DISPLAY 구문은 생성된 윈도우를 표시한다.
    •  매크로 문장에서 %WINDOW 구문"  와 %DISPLAY 구문은 Macro 기능에 의해 관리되는 윈도우를 생성하고 표시한다.

     


    5. 관련 구문

    구문명 구문내용
    DISPLAY 구문  
    WINDOWS 구문 운영프로그램에 해당하는 사용자 정의 윈도우 창을 생성하여서 사용자 기반의 윈도우을 생성하여 활용하도록 지원한다.

     

     


    6. 예 제

     

    예제1 : 단일 윈도우생성

    다음 데이터 스텝은 단일 필드 그룹을 사용하여 윈도우를 생성한다.

    SAS Program
    data _null_;
       window start
              #9  @26 'WELCOME TO THE SAS SYSTEM'
                      color=black
              #12  @19 'THIS PROGRAM CREATES'
              #12  @40 'TWO SAS DATA SETS'
              #14 @26 'AND USES THREE PROCEDURES'
              #18 @27 'Press ENTER to continue';
        display start;
        stop;
    run;

     

    Results

    START 윈도우는 전체 모니터 화면을 채운다. 텍스트의 번째 라인의 색은 검정색이고, 다른 3개의 라인은 운영환경의 기본색이 지정된다. 텍스트는 프로그램에서 지정된 열에서 시작한다. START 윈도우는 값의 입력을 요구하지 않는다. 그러나, 윈도우를 나가기 위하여 다음 중에 하나의 방법을 사용해야 한다. 

    • 데이터 스텝 실행이 STOP 구문을 처리하도록 ENTER키를 눌러라.
    • END명령어를 실행한다.

     

    문장에서 STOP 구문을 생략하면, 단축키 또는 명령어 라인에서 윈도우에 대하여 END 명령어를 실행 때까지 데이터 스텝은 무한 반복하여 실행한다. ( 데이터 스텝은 관측치를 읽지 않기 때문에, SAS 데이터 스텝 실행을 종료시키는 파일의 (end-of-file) 표시를 감지 없다.)

     


    예제2 : 동시에 2개의 윈도우 표시하기

    다음 문장은 기자에게 새로운 기사를 할당하는 프로그램이다. 기사 주제의 리스트는 SAS 데이터세트(category.article)에서 변수 art 저장되어 있다. 응용 프로그램은 기자에게 주제를 할당하고, 할당한 내용을 확인 있다. 프로그램은 새로운 데이터세트 Assignment 생성한다.

    SAS Program
    libname category 'SAS-library';
     
    data Assignment;
       set category.article end=final;
       drop a b j s o;
       window Assignment irow=1 rows=12 color=white
              #3 @10 'Article:' +1 art protect=yes
              'Name:' +1 name $14.;
       window Showtotal irow=20 rows=12 color=white
              group=subtotal
              #1 @10 'Adams has' +1 a
              #2 @10 'Brown has' +1 b
              #3 @10 'Johnson has' +1 j
              #4 @10 'Smith has' +1 s
              #5 @10 'Other has' +1 o
              group=lastmessage
              #8 @10
              'ALL ARTICLES ASSIGNED.
              Press ENTER to stop processing.';
       display Assignment blank;
       if name='Adams' then a+1;
       else if name='Brown' then b+1;
       else if name='Johnson' then j+1;
       else if name='Smith' then s+1;
       else o+1;
       display Showtotal.subtotal blank noinput;
       if final then display Showtotal.lastmessage;
    run;

     

    데이터 스텝을 실행하는 경우에 다음 윈도우가 나타난다.

    Results

    할당 윈도우에서(모니터 상단에 위치한), 기사의 이름과 기자의 이름을 입력하는 필드가 보인다. 이름을 입력하고 ENTER키를 누른 후에, SAS 각각의 리포터에게 할당되는 기사의 개수(바로 할당한 기사를 포함한) 보여주는 Showtotal윈도우(모니터 하단에 있는) 표시한다. 할당을 계속하기 때문에, Showtotal 윈도우의 값은 갱신된다. 데이터 스텝의 마지막 반복 후에, SAS 모든 기사가 할당되었다는 메시지와 처리를 중지하기 위하여 ENTER키를 누르라는 메시지를 표시한다.

     


    예제3 : 지속되는 필드와 지속되지 않는 필드

    다음 예제는 PERSIST= 옵션을 설명한다. 현재 윈도우에서 커서를 위치시키고 ENTER 눌러서 커서를 현재 위치에서 다른 곳으로 이동시킨다.

    SAS Program
    data _null_;
       array row{3} r1-r3;
       array col{3} c1-c3;
       input row{*} col{*};
       window One
              rows=20 columns=36
              #1 @14 'PERSIST=YES' color=black
              #(row{i}) @(col{i}) 'Hello'
              color=black persist=yes;
     
       window Two
              icolumn=43 rows=20 columns=36
              #1 @14 'PERSIST=NO' color=black
              #(row{i}) @(col{i}) 'Hello'
              color=black persist=no;
       do i=1 to 3;
          display One;
          display Two;
       end;
       datalines;
    5 10 15 5 10 15
    ;

     다음 윈도우는 3번째 반복 후의 데이터 스텝 결과를 보여준다.

    Results

     참고로 윈도우 One 3군데 위치에서 모두 Hello라고 계속 표시된다. 윈도우 Two 최종적으로 단지 마지막 3번째 위치에서 Hello라고 표시된다

     


    예제4 : 메시지 보내기

    WINDOW 구문을 사용하여 정의된 윈도우에서 잘못된 윈도우 명령어를 실행하는 경우에 메시지를 출력하기 위하여 _CMD_ _MSG_ 자동변수를 사용한다.

    SAS Program
    if _cmd_ ne ' ' then _msg_='CAUTION: UNRECOGNIZED COMMAND' || _cmd_;

     에러가 포함된 명령어를 입력하는 경우에 SAS _CMD_ 값으로 잘못된 명령어 텍스트를 설정한다. _CMD_ 값은 공백이 아니기 때문에 IF 구문은 참이다. THEN 구문은 CAUTION : UNRECOGNIZED COMMAND _CMD_ ( 80바이트까지) 결합하여서 생성된 값을 _MSG_ 할당한다. DISPLAY 구문이 윈도우를 표시한 후에, 윈도우의 하단 메시지 라인에 다음 항목을 표시한다.

    Results
    CAUTION: UNRECOGNIZED COMMAND command

     Command 잘못된 윈도우 명령어를 표시한다.

     


    예제5 : SAS데이터 세트 생성하기

    다음 문장은 WINDOW 구문에서 데이터를 입력받아서 SAS 데이터세트(NEW) 생성한다

    SAS Program
    data new;
       length name $20;
       window start
          #3  @20 'Type the variable name'
          #4  @20 'and press the Enter key.'
          #7 'Name:' +1 name attr=underline
          #11 'When you are finished entering variable names, type "end"'
          #12 'at the command line.';
       display start;
    run;
     
    proc print;
    run;

     

    Results

     


     


    [SAS Statement] SAS 데이터 스텝 구문 사전 목록]

     

    SAS 함수(SAS Function) 리스트 링크
    반응형

    'SAS > SAS 구문사전' 카테고리의 다른 글

    【SAS Statement】 DO UNTIL 구문  (1) 2023.05.21
    【SAS Statement】 X 구문  (0) 2022.02.08
    【SAS Statement】 WHERE 구문  (0) 2022.02.07
    【SAS Statement】 UPDATE 구문  (0) 2022.02.07
    【SAS Statement】 TITLE 구문  (0) 2022.02.07

    댓글