본문 바로가기
SAS/SAS 함수

【SAS 함수】 432. VARTYPE

by 기서무나구물 2021. 10. 15.

포스팅 목차

    o VARTYPE

     


    SAS 데이터 세트 변수의 데이터 Type을 반환한다.(C:문자,N:숫자)

    Category: SAS File I/O

     


    문 법


    VARTYPE
     (data-set-id, var-num)


     

    Arguments

         data-set-id

              는 OPEN함수에 의해 반환되는 인식자.

     


    관련 구문 및 함수

    함수명 함수내용
    ATTRC SAS 데이터 세트와 연관된 다양한 문자 속성 값을 반환한다.
    ATTRN
    SAS 데이터 세트와 연관된 다양한 수치형 속성값을 반환한다.
    CLOSE 앞에서 열었던 SAS 데이터 세트를 닫는다.
    OPEN SAS 데이터 세트를 OPEN하고, 데이터 세트 ID를 반환한다.
    VARFMT
    SAS 데이터 세트 변수에 할당된 출력형식(포맷, Format)을 반환한다.
    VARINFMT SAS 데이터 세트 변수에 할당되어있는 입력형식(인포맷, informat)을 반환한다.
    VARLABEL SAS 데이터 세트 변수에 할당된 라벨(Label)을 반환한다.
    VARLEN SAS 데이터 세트 변수에 할당된 길이(Length)를 반환한다.
    VARNAME SAS 데이터 세트 변수의 이름을 반환한다.
    VARNUM SAS 데이터 세트에서 위치하고 있는 SAS 변수의 위치(Position) 정보 값을 반환한다.
    VARTYPE
    SAS 데이터 세트 변수의 데이터 Type을 반환한다.(C:문자,N:숫자)

     


    예 제

    예 제 1 :

    sasuser.houses데이터에서 수치형 변수 여부를 파악하여 수치형 변수의 변수 이름을 varlist에 저장을 한다.

    SAS Statements
    %macro back;
      %let dsid=%sysfunc(open(sasuser.houses,i));
      %put &dsid; %let varlist=;
      %let n = %sysfunc(attrn(&dsid,nvar));
    
      %do i=1 %to &n;
          %if (%sysfunc(vartype(&dsid,&i)) = N) %then %let varlist=&varlist %sysfunc(varname(&dsid,&i));
          %put &varlist;
      %end;
    
      %let rc=%sysfunc(close(&dsid));
    %mend;
    %back;

     

    Results
    sqfeet
    sqfeet bedrooms
    sqfeet bedrooms baths
    sqfeet bedrooms baths
    sqfeet bedrooms baths

     


    예 제 2 :

    sasuser.houses데이터에서 문자형 변수에 해당하는 문자형 변수와 해당값을 name변수와 content변수로 출력을 한다.

    SAS Statements
    data VARTYPE;
         length name $ 8 content $ 20;
         drop dsid i num fmt rc;
         dsid = open("sasuser.houses","i");
         num  = attrn(dsid,"nvars");
    
         do while (fetch(dsid)=0);
            do i=1 to num;
               name = varname(dsid,i);
               fmt = varfmt(dsid,i);
    
               if (vartype(dsid,i)='C') then do;
                  content = getvarc(dsid,i);
                  if (fmt ne '') then content=left(putc(content,fmt));
                  output;
               end;
            end;
         end;
         rc=close(dsid);
    run;

     

    Results
     name     content     
    style     RANCH   
    street    Sheppard Avenue
    price     $64,000
    style     SPLIT   
    street    Rand Street   
    price     $65,850   
    style     CONDO   
    street    Market Street   
    price     $80,050   
    style     TWOSTORY   
    street    Garris Street   
    price     $107,250   
    style     RANCH
    ----- 생략 ------------

     


    SAS 함수(SAS Function) 리스트 링크

     

    엑셀(EXCEL)과 SAS 함수(SAS Function) 비교 리스트 링크

     

    SAS 데이터 스텝 구문 리스트(SAS Data Step Statement)
    반응형

    'SAS > SAS 함수' 카테고리의 다른 글

    【SAS 함수】 434. VFORMAT  (0) 2021.10.15
    【SAS 함수】 433. VERIFY  (0) 2021.10.15
    【SAS 함수】 431. VARTRANSCODE  (0) 2021.10.15
    【SAS 함수】 430. VARRAYX  (0) 2021.10.15
    【SAS 함수】 429. VARRAY  (0) 2021.10.15

    댓글