본문 바로가기
SAS/SAS 함수

【SAS 함수】 423. VARFMT

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

포스팅 목차

    o VARFMT

     


    SAS 데이터 세트 변수에 할당된 출력형식(포맷, Format)을 반환한다.

    Category: SAS File I/O

     


    문 법


    VARFMT
     (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 :

    gender변수와 income변수에 할당된 포맷을 알기위해서 varfmt함수를 사용한다.

    SAS Statements
    data VARFMT1;
         length fmt $ 12;
         dsid = open('sasuser.income','i');
    
         if dsid then do;
            fmt  = varfmt(dsid,varnum(dsid,'gender'));
            fmt1 = varfmt(dsid,varnum(dsid,'income'));
            c    = close(dsid);
         end;
    run;

     

    Results
     fmt       dsid       fmt1
    $GENDER.      1     DOLLAR11.2

     


    예 제 2 :

    sasuser.income 데이터에서 numeric데이터에 대해서 포맷을 fmt변수에 저장하고, var1변수에 숫자데이터를, var2변수에 숫자데이터에 대해 숫자포맷형식으로, content변수에는 숫자변수에 대하여 숫자포맷을 지정한후에 다시 문자포맷을 지정하여 반환한다.

    SAS Statements
    data VARFMT2;
         length name $ 8 content $ 12;
         *drop dsid i num rc fmt;
    
         dsid = open("sasuser.income","i");
         put dsid=;
    
         num = attrn(dsid,"nvars");
         put num=;
    
         do while (fetch(dsid)=0);
            do i=1 to num;
               name = varname(dsid,i);
               put name=;
    
               * 변수형태가 numeric인경우;
               if (vartype(dsid,i)='N') then do;
                  fmt = varfmt(dsid,i);
                  if fmt = '' then fmt="BEST12.";
    
                  * 숫자 데이터 추출;
                  var1 = getvarn(dsid,i);
                  * 지정한 숫자변수에 지정한 포맷(fmt)을 적용하여 문자변수로 반환 ;
    
                  var2 = putn(getvarn(dsid,i),fmt);
                  * 지정한 숫자변수에 지정한 문자포맷을 적용하여 문자변수로 반환 ;
    
                  content = putc(putn(getvarn(dsid,i),fmt),"$char12.");
                  output;
               end;
            end;
         end;
    
         rc=close(dsid);
    run;

     

    Results
    name         content     dsid    num    i       fmt         var1         var2
    income     $54,789.00      1      4     3    DOLLAR11.2     54789     $54,789.00
    income      $4,565.00      1      4     3    DOLLAR11.2      4565      $4,565.00
    income    $134,656.00      1      4     3    DOLLAR11.2    134656    $134,656.00
    income      $5,433.00      1      4     3    DOLLAR11.2      5433      $5,433.00
    income     $57,654.00      1      4     3    DOLLAR11.2     57654     $57,654.00
    income     $86,685.00      1      4     3    DOLLAR11.2     86685     $86,685.00
    income     $23,567.00      1      4     3    DOLLAR11.2     23567     $23,567.00
    income     $65,778.00      1      4     3    DOLLAR11.2     65778     $65,778.00
    income     $45,654.00      1      4     3    DOLLAR11.2     45654     $45,654.00

     


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

     

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

     

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

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

    【SAS 함수】 425. VARLABEL  (0) 2021.10.14
    【SAS 함수】 424. VARINFMT  (0) 2021.10.14
    【SAS 함수】 422. VAR  (0) 2021.10.14
    [SAS 함수] 421. UUIDGEN  (0) 2021.10.14
    【SAS 함수】 420. USS  (0) 2021.10.14

    댓글