BookmarkSubscribeRSS Feed

[예제로 배우는 SAS] 2. Writing your First SAS Program

Started ‎06-11-2020 by
Modified ‎06-11-2020 by
Views 166
1.PNG
 

안녕하세요. MYSAS입니다.

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

 

 

 

목  차

  1. Raw Data를 읽고 레포트를 작성하는 간단한 프로그램
  2. 레포트 내용을 조금 더 풍부하게 해보기
  3. 연습문제 

 

 

 

  1. Raw Data 읽고 레포트를 작성하는 간단한 프로그램SAS 소개

  다음 자료를 분석하려고 합니다

File: C:\books\learning\mydata.txt

 

M 50 68 155

F 23 60 101

M 65 72 220

F 35 63 133

M 15 71 166

 

분석 코딩을 먼저 살펴보도록 하겠습니다

 

 

Data demographic;

           Infile 'c:\books\learning\mydata.txt';

           Input Gender $ Age Height Weight;

Run;

 

Title “Gender Frequencies”;

Proc freq data= demographic;

           Tables Gender;

Run;

 

Title “Summary Statistics”;

Proc means data=demographic;

           Var Age Height Weight;

Run;

 

 위 프로그램은 하나의 DATA 스텝과 두 개의 PROC 스텝으로 구성되어있습니다. 그리고 만들어진 DATA는 demographic이라는 이름으로 만들어질 것입니다. 

 

INFILE문은 우리가 읽어드릴 데이터를 표시하고고 보시다시피 C:\BOOKS\LEARNING 이라는 폴더에MYDATA.TXT를 읽어드리게 합니다

 

 

 INPUT문은 네 가지 변수를 설정하겠다는 것인데 $의미는 Gender가 문자형 변수임을 말해 주는 것입니다. 즉, 위의 데이터에서M, F 가 Gender 변수인데 이는 문자형이기 때문에 따로 설정해 주는 것입니다. 특별한 기호가 없는 한 SAS는 데이터 값들이 숫자라고 인식을 하여 숫자형 변수로 저장을 합니다.

 

 

TITLE문은 이름 그대로 SAS 결과물의 상단에 제목을 표시하는 명령문이고 이는 global statement라 합니다. 즉, 하나의 SAS ouput에만 영향을 미치는 것이 아니라 전체 SAS 환경에 영향을 미친다는 것입니다. 이는 SAS프로그램을 종료하거나 수정하기 전까지는 바뀌지 않습니다. 

 

FREQ문은 뒤에서 자세히 설명하겠지만 빈도표를 작성하는 문장입니다. 이를 위해선 TABLE 문과 함께 쓰여서 빈도’표’를 작성할 수 있는 것입니다.

 

 

PROC MEANS 역시 뒤에서 다룰 예정입니다. 이는 기초 통계량, 즉 평균, 분산, 최대, 최소값을 출력해주는 문장이며 VAR 문은 원하는 변수를 선택하고자 할 때 PROC STEP안에서만 사용할 수 있는 문장입니다. 즉, 위에서는 Age, Height, Weight에 관한 기초 통계량만 보고 싶다는 이야기 입니다.

 

 

이렇게 보듯이 SAS는 간단한 표와 기초 통계량을 손쉽게 작성할 수 있는 프로그램입니다.

그럼 다음 장부터 결과물의 내용을 조금 더 풍부하게 하는 법을 배우도록 하겠습니다.

 

 

 

  1. 레포트 내용을 조금 더 풍부하게 해보기

 

다음 코딩을 살펴봅시다

 

 

Data demographic;

           Infile “c:\books\learning\mydata.txt”;

           Input Gender $ Age Height Weight

           BMI = (Weight / 2.2) / (Height*.254)**2;

Run;

 

 

BMI = 는 ‘Assignment Statement’ 즉 ,할당문의 한 예시라고 보시면 되는데 등호 오른편에 연산을 왼쪽 변수에 저장을 하겠다는 의미입니다. 위에 코딩에서는 보시다시피 오른쪽의 연산 결과를 왼쪽에 변수에 저장하겠다는 것입니다. 연산 기호는 기본 연산자(*,+,-)와 그 사용법과 연산 순서가 동일합니다. 

 

결국 위의 코딩에서는 demographic이라는 을 알 수 있을 것입니다. 새로운 data set에 BMI라는 변수를 추가한다는 것

 

여기서 두 가지 문제를 드리도록 하겠습니다.

 

 

 

  1. 연습문제

 

1.다음 코딩에서 잘못된 점을 찾아 보세요

 

Data new-data;

           Infile prob4data.txt;

           Input x1 x2

           Y1 = 3(x1) + 2(x2);

           Y2 = x1 / x2;

           New_variable_from_x1_and_x2 = x1+x2-37;

Run;

 

  1. 다음 문제도 풀어보실까요?

 

 EMF = 1.45 x V + (R/E) x V3 – 125

 (Hint : 지수 연산자는 ** 를 쓰시면 됩니다 ^^ ex)   (x+2) => (x+2)**2   )

 

라는 변수를 추가하고 싶습니다. 만약 V, R, E라는 변수를 데이터셋이 포함한다고 가정했을 때 이 변수를 포함시킬 수 있는 문장을 작성해 보세요 ^^

 

 

 

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

 

 본 자료의 저작권은 sas에 있습니다

Version history
Last update:
‎06-11-2020 09:11 PM
Updated by:
Contributors

sas-innovate-white.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.

 

Early bird rate extended! Save $200 when you sign up by March 31.

Register now!

Article Labels
Article Tags