BookmarkSubscribeRSS Feed

[예제로 배우는 SAS] 1.What is SAS?

Started ‎06-11-2020 by
Modified ‎06-11-2020 by
Views 136

2.PNG

 

안녕하세요. MYSAS입니다.

 금주는 SAS에 대해 알아보겠습니다.

 

목  차

  1. SAS 소개 
  2. Getting Data into SAS 
  3. SAS 샘플 프로그램 
  4. SAS Names
  5. SAS Data-Sets과 Data-Types 
  6. 연습문제 

 

 

1. SAS 소개

  SAS는 데이터를 관리하고 분석하는 모듈의 집합체 입니다. 1960년대 말부터 1970년 초에 통계패키지로 시작했습니다. 최근에는 최신식의 데이터마이닝툴(DataMining)과 웹개발/분석 프로그램을 제공 하고 있습니다.
 1990년 중반 이후 SAS는 다차원분석처리(OLAP), 데이터 추출(ETL) 툴 등 데이터 웨어하우스(DW) 솔루션과 품질 마이닝 및 리스크, 활동 기준 원가 관리 등 기업의 의사 결정 지원을 위한 포괄적인 비즈니스 인텔리전스 제품 군을 선보이면서 ‘엔터프라이즈 인텔리전스’ 즉 ‘전사적 BI 솔루션 전문 기업’으로 재탄생 했습니다.

 

 

2. Getting Data into SAS

 SAS는 거의 모든 Source로 부터 데이터를 불러올수 있습니다. 예를 들어, 가장 흔히 사용하는 Raw Text 데이터, Microsoft Office Excel 데이터, Access Databases 등 뿐만 아니라, 오라클, DB2 등과 같은 데이터베이스 시스템내 데이터도 불러 올 수 있습니다.

 

 

3. SAS 샘플 프로그램

Options nocenter nonumber;
   data veg;
      infile "c:\SASsample\learning\veggies.txt";
      input Name $ Code $ Days Number Price;
      CostPerSeed = Price / Number;
   Run;

Title "List of The Raw Data"
   Proc Print Data = veg;
   Run;

Title "Frequency Distribution of Vegetable Names";
   Proc Freq Data = veg;
   Tables Name;
Run;

Title "Average Cost of Seeds";
   Proc Means Data =Veg;
      var Price Days;
   Run;

위 프로그램에서 SAS의 몇 가지 특징들을 살펴 볼 수 있습니다.

   1. DATA Step과 PROC step

  • SAS프로그램은 DATA step과 PROC step으로 구성됩니다.
  • DATA step은 데이터를 읽고, 쓰고, 수정하고, 연산을 실행하는 단계라고 할 수있습니다.
  • PROC Step은 각종 통계적 결과물을 산출, 그래프 생성, 데이터를 요약 등을 실행하는 단계입니다.
  • DATA Step은 'Data' 로 시작하고 PROC Step은 'PROC'으로 시작합니다.
  • 두가지 스탭 모두 RUN;으로 종료합니다. (종종 QUIT;으로 끝나는 경우도 있습니다.)

   2. Global Statement

  • DATA Step과 PROC Step외에 SAS프로그램을 효율적으로 만들기 위해 환경 설정 등을 하는 Global문장이 있습니다.
  • 위의 프로그램에서는 OPTIONS과 TITLE이 있습니다.
  • Global문장은 다른 Global문장으로 대체되거나 SAS가 종료될 때까지 지속됩니다. 

   3. 기본적인 문장(Statements) 규칙

  • DATA step과 PROC step은 Statements로 구성됩니다.
  • 하나의 Statements는 예약어(Data, Proc, Var 등)로 시작하여 세미콜론(;)으로 종료합니다.
    * SAS는 세미콜론이 필요한 곳에 세미콜론이 찍혀있지 않으면 프로그램 전체가 돌아가지않고 해석하기 힘든 Error코드가 뜹니다.
      초보자 분들이 가장 많이 하는 실수 중에 하나입니다.
  • 문장이 세미콜론(;)으로 구분되어 있다면, 필요에 따라  하나의 문장을 여러줄에 쓸수 있으며, 여러 문장을 한줄에 쓸수 도 있습니다.
     *예를 들면 아래 나오는 코드와 위의 코드가 같은 결과를 출력하는 것을 알 수 있습니다.
       
      data veg; infile "c:\SASsample\learning\veggies.txt";   input
      Name $ Code $ Days Number
      Price;    CostPerSeed =
      Price /
      Number;
      Run;
     
  • SAS는 대소문자를 잘 구별하지 않습니다. 예를 들어, 변수명, Proc명, 라이브러리명 등 대소문자를 구분하지 않고 같은 것으로 인식합니다. 단, Character 변수의 값은 대소문자를 구분합니다. (또한 몇 몇 OS(Unix, Linux)에서는 File name도 구분합니다.)
    * 프로그램 상에서 변수명을 대소문자를 구분하지는 않지만, Report를 출력 할 때 변수명을 가장 먼저 입력한 방식(대문자, 소문자 혹은 혼합된 것)으로 출력됩니다.

 

4. SAS Names

SAS에서 사용되는 각종 Names들은 아래와 같은 간단한 규칙을 따릅니다.

  • SAS의 모든 변수명과 Data Set의 이름은 32자를 넘을 수 없습니다.
  • 문자나 언더스코어(_)로만 시작 할 수 있습니다.
  • 첫 문자 뒤에는 문자, 숫자, 언더스코어(_)로 구성 될 수있습니다. (특수문자는 _만 가능합니다.)

       예)

사용가능한 이름들
Parts
LastName
First_Name
Ques5
Cost_per_Pound
DATE
time
X12Y34Z56

  

사용 불가능한 이름들
8_is_enough 숫자로 시작함
Price Per Pound 띄어쓰기(Blank)는 안됨
Month-total 콜론(-) 안됨
Num% 퍼센트(%)도 안됨 * 매크로 트리거로 %Num은

 

 

 

 

5. SAS Data Sets 과 DATA Types

 SAS는 외부에서 데이터를 불러온 후,  'SAS data set'에 저장됩니다. SAS는 이 SAS Data Set에서만 데이터를 읽고, 쓰고 할 수 있습니다. 즉, Raw Text, Excel데이터, 오라클, DB2등에서의 데이터를 불러와서(Convert) SAS Data Set으로 만들어야 합니다.

 SAS Data Set이 어떻 만들어지는지에 대해서는 신경 쓸 필요 없지만, SAS Data Set이 두가지 파트로 나뉜다는 것은 이해할 필요가 있습니다.

  • 변수 정보를 갖고 있는 부분(Descriptor portion)와 실제 데이터를 갖고 있는 부분(Data portion)으로 구성됩니다.
  • 변수 정보란, 변수의 이름, 길이, Types, Labels, Format등 과 같은 정보를 말합니다.

Data Type은 문자형(Character)과 숫자형(Numeric)이 있습니다. 이는 다른 프로그램에 비해 매우 간단한 구조입니다. integer, Long Interger, Logical 등의 길이에 따른 타입을 지정하지 않아도 되기 때문입니다.

  • SAS는 모든 변수를 고정된 길이로 저장합니다.
  • 숫자형의 경우 자동적으로 8byte로 저장됩니다.
  • 문자형의 경우 Statement(Length)로 길이가 결정되거나, 혹은 다른 Rule(처음 입력되는 변수 값의 길이)을 통해 결정됩니다.

 

 

6. 연습문제

1) SAS에서 사용가능한 변수명을 골라 주세요.
    a) Height
    b) HeightInCentimeters
    c) Height_in_Centimeters
    d) Wt-Kg
    e) x123y456
    f) 76Trombones
   g) MiXeDcasE

2) SAS에서 사용가능한 Data-Set 이름을 골라 주세요.
   a) Clinic
   b) clinic
   c) work
   d) hyphens-in-the-name
   e) 123go
   f) Demographics_2006

3)  당신은 지금 Student ID, English, History, Math, Science로 구성된 10명의 학생의 데이터셋을 갖고 있습니다.
    a) 변수의 개수는?
    b) Observations의 개수는?

4) True of False?
   a) SAS statement는 한줄 이상으로 구성될수 있다.
   b) 여러줄에 걸쳐 하나의 SAS 문장을 쓸수 있다.
   c) SAS는 세가지 타입이 있다. : Character, numeric, and integer.
   d) OPTIONS와 TITLE문장은 Global statementㅇ다.

5) SAS에서 기본적으로 numeric 변수는 몇 byte 입니까?

 

 

수고하셨습니다. 정답은 다음주에 댓글로 달아드리겠습니다.^^ 즐거운 한주 보내세요~

 

 

 2.PNG

Version history
Last update:
‎06-11-2020 05:49 AM
Updated by:
Contributors

sas-innovate-wordmark-2025-midnight.png

Register Today!

Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9. Sign up by March 14 for just $795.


Register now!

Article Labels
Article Tags