SAS-퀵 가이드

SAS 약자 Statistical Analysis Software. 1960 년 SAS Institute에서 만들었습니다. 1960 년 1 월 1 일부터 SAS는 데이터 관리, 비즈니스 인텔리전스, 예측 분석, 설명 및 처방 분석 등에 사용되었습니다. 그 이후로 많은 새로운 통계 절차와 구성 요소가 소프트웨어에 도입되었습니다.

통계 용 JMP (Jump)의 도입으로 SAS는 Graphical user Interface이것은 매킨토시에서 소개되었습니다. Jump는 기본적으로 Six Sigma, 설계, 품질 관리 및 엔지니어링 및 과학적 분석과 같은 응용 프로그램에 사용됩니다.

SAS는 플랫폼에 독립적이므로 Linux 또는 Windows의 모든 운영 체제에서 SAS를 실행할 수 있습니다. SAS는 데이터 분석을위한 적절한 보고서를 작성하기 위해 SAS 데이터 세트에서 여러 작업 시퀀스를 사용하는 SAS 프로그래머가 주도합니다.

수년 동안 SAS는 제품 포트폴리오에 수많은 솔루션을 추가했습니다. 데이터 거버넌스, 데이터 품질, 빅 데이터 분석, 텍스트 마이닝, 사기 관리, 건강 과학 등을위한 솔루션이 있습니다. SAS가 모든 비즈니스 도메인에 대한 솔루션을 가지고 있다고 안전하게 가정 할 수 있습니다.

사용 가능한 제품 목록을 한 눈에 보려면 SAS Components를 방문하십시오.

SAS를 사용하는 이유

SAS는 기본적으로 대규모 데이터 세트에서 작동합니다. SAS 소프트웨어의 도움으로 다음과 같은 데이터에 대해 다양한 작업을 수행 할 수 있습니다.

  • 자료 관리
  • 통계 분석
  • 완벽한 그래픽으로 보고서 작성
  • 사업 계획
  • 운영 연구 및 프로젝트 관리
  • 품질 향상
  • 응용 프로그램 개발
  • 데이터 추출
  • 데이터 변환
  • 데이터 업데이트 및 수정

SAS의 구성 요소에 대해 이야기하면 SAS에서 200 개 이상의 구성 요소를 사용할 수 있습니다.

Sr. 아니. SAS 구성 요소 및 용도
1

Base SAS

데이터 관리 기능과 데이터 분석을위한 프로그래밍 언어를 포함하는 핵심 구성 요소입니다. 또한 가장 널리 사용됩니다.

2

SAS/GRAPH

더 나은 이해를 위해 그래프, 프레젠테이션을 만들고 적절한 형식으로 결과를 보여줍니다.

SAS/STAT

분산 분석, 회귀 분석, 다변량 분석, 생존 분석 및 심리 분석, 혼합 모델 분석을 사용하여 통계 분석을 수행하십시오.

4

SAS/OR

운영 연구.

5

SAS/ETS

계량 경제학 및 시계열 분석.

6

SAS/IML

CInteractive 매트릭스 언어.

7

SAS/AF

응용 시설.

8

SAS/QC

품질 관리.

9

SAS/INSIGHT

데이터 수집.

10

SAS/PH

임상 시험 분석.

11

SAS/Enterprise Miner

데이터 수집.

SAS 소프트웨어 유형

  • Windows 또는 PC SAS
  • SAS EG (엔터프라이즈 가이드)
  • SAS EM (예측 분석을위한 Enterprise Miner)
  • SAS 의미
  • SAS 통계

대부분 우리는 조직과 교육 기관에서 Window SAS를 사용합니다. 일부 조직에서는 Linux를 사용하지만 그래픽 사용자 인터페이스가 없으므로 모든 쿼리에 대해 코드를 작성해야합니다. 그러나 윈도우 SAS에는 프로그래머에게 매우 도움이되는 많은 유틸리티가 있으며 코드 작성 시간도 단축됩니다.

SaS 창은 5 개 부분으로 구성됩니다.

Sr. 아니. SAS 창 및 용도
1

Log Window

로그 창은 SAS 프로그램의 실행을 확인할 수있는 실행 창과 같습니다. 이 창에서 오류도 확인할 수 있습니다. 프로그램 실행 후 매번 로그 창을 확인하는 것은 매우 중요합니다. 프로그램 실행에 대한 적절한 이해를 얻을 수 있습니다.

2

Editor Window

Editor Window는 모든 코드를 작성하는 SAS의 일부입니다. 메모장과 같습니다.

Output Window

출력 창은 프로그램의 출력을 볼 수있는 결과 창입니다.

4

Result Window

모든 출력에 대한 색인과 같습니다. SAS의 한 세션에서 실행 한 모든 프로그램이 여기에 나열되며 출력 결과를 클릭하여 출력을 열 수 있습니다. 그러나 이것들은 SAS의 한 세션에서만 언급됩니다. 소프트웨어를 닫았다가 열면 결과 창이 비어 있습니다.

5

Explore Window

여기에 나열된 모든 라이브러리가 있습니다. 여기에서 시스템 SAS 지원 파일을 찾아 볼 수도 있습니다.

SAS의 라이브러리

라이브러리는 SAS의 저장소와 같습니다. 라이브러리를 만들고 해당 라이브러리에 모든 유사한 프로그램을 저장할 수 있습니다. SAS는 여러 라이브러리를 생성 할 수있는 기능을 제공합니다. SAS 라이브러리의 길이는 8 자입니다.

SAS에는 두 가지 유형의 라이브러리가 있습니다.

Sr. 아니. SAS 창 및 용도
1

Temporary or Work Library

이것은 SAS의 기본 라이브러리입니다. 우리가 만든 모든 프로그램은 다른 라이브러리를 할당하지 않으면이 작업 라이브러리에 저장됩니다. 이 작업 라이브러리는 탐색 창에서 확인할 수 있습니다. SAS 프로그램을 생성하고 영구 라이브러리를 할당하지 않은 경우 세션을 다시 종료하면 소프트웨어를 시작하면이 프로그램이 작업 라이브러리에 포함되지 않습니다. 세션이 진행되는 한 Work 라이브러리에만 있기 때문입니다.

2

Permanent Library

이들은 SAS의 영구 라이브러리입니다. SAS 유틸리티를 사용하거나 편집기 창에서 코드를 작성하여 새 SAS 라이브러리를 만들 수 있습니다. 이러한 라이브러리는 SAS에서 프로그램을 생성하고 영구 라이브러리에 저장하면 원하는만큼 사용할 수 있으므로 영구 라이브러리로 명명됩니다.

SAS Institute Inc.는 SAS University EditionSAS 프로그래밍을 배우기에 충분합니다. BASE SAS 프로그래밍에서 학습하는 데 필요한 모든 기능을 제공하므로 다른 SAS 구성 요소를 학습 할 수 있습니다.

SAS University Edition을 다운로드하고 설치하는 과정은 매우 간단합니다. 가상 환경에서 실행해야하는 가상 머신으로 사용할 수 있습니다. SAS 소프트웨어를 실행하려면 먼저 PC에 가상화 소프트웨어가 이미 설치되어 있어야합니다. 이 튜토리얼에서 우리는VMware. 다음은 SAS 환경을 다운로드하고 설정하고 설치를 확인하는 단계에 대한 세부 정보입니다.

SAS University Edition 다운로드

SAS University EditionURL SAS University Edition 에서 다운로드 할 수 있습니다 . 다운로드를 시작하기 전에 아래로 스크롤하여 시스템 요구 사항을 읽으십시오. 이 URL을 방문하면 다음 화면이 나타납니다.

가상화 소프트웨어 설정

동일한 페이지에서 아래로 스크롤하여 설치 stpe-1을 찾습니다. 이 단계에서는 사용자에게 적합한 가상화 소프트웨어를 얻을 수있는 링크를 제공합니다. 시스템에 이러한 소프트웨어 중 하나가 이미 설치되어있는 경우이 단계를 건너 뛸 수 있습니다.

빠른 시작 가상화 소프트웨어

가상화 환경을 완전히 처음 접하는 경우 2 단계로 제공되는 다음 가이드 및 비디오를 통해 익숙해 질 수 있습니다. 이미 익숙한 경우이 단계를 건너 뛸 수 있습니다.

Zip 파일 다운로드

3 단계에서는 보유하고있는 가상화 환경과 호환되는 적절한 SAS University Edition 버전을 선택할 수 있습니다. unvbasicvapp__9411005__vmx__en__sp0__1.zip과 유사한 이름의 zip 파일로 다운로드됩니다.

zip 파일의 압축을 풉니 다

위의 zip 파일은 압축을 풀고 적절한 디렉토리에 저장해야합니다. 우리의 경우 압축을 푼 후 다음 파일을 보여주는 VMware zip 파일을 선택했습니다.

가상 머신로드

VMware 플레이어 (또는 워크 스테이션)를 시작하고 .vmx 확장자로 끝나는 파일을 엽니 다. 아래와 같은 화면이 나타납니다. VM에 할당 된 메모리 및 하드 디스크 공간과 같은 기본 설정을 확인하십시오.

가상 머신 전원 켜기

클릭 Power on this virtual machine녹색 화살표 표시와 함께 가상 머신을 시작합니다. 다음 화면이 나타납니다.

아래 화면은 SAS vm이 로딩 상태 일 때 나타나며 실행중인 vm은 SAS 환경을 열 URL 위치로 이동하라는 메시지를 표시합니다.

SAS Studio 시작

새 브라우저 탭을 열고 위의 URL을로드합니다 (PC마다 다름). SAS 환경이 준비되었음을 나타내는 아래 화면이 나타납니다.

SAS 환경

클릭시 Start SAS Studio 기본적으로 아래와 같이 비주얼 프로그래머 모드에서 열리는 SAS 환경을 얻습니다.

드롭 다운을 클릭하여 SAS 프로그래머 모드로 변경할 수도 있습니다.

이제 SAS 프로그램을 작성할 준비가되었습니다.

SAS 프로그램은 다음과 같은 사용자 인터페이스를 사용하여 생성됩니다. SAS Studio.

다음은 다양한 창과 그 사용법에 대한 설명입니다.

SAS 기본 창

이것은 SAS 환경에 들어갈 때 표시되는 창입니다. 왼쪽에는Navigation Pane다양한 프로그래밍 기능을 탐색하는 데 사용됩니다. 오른쪽에는Work Area 코드를 작성하고 실행하는 데 사용됩니다.

코드 자동 완성

이것은 SAS 키워드의 올바른 구문을 얻는 데 도움이 될뿐만 아니라 해당 키워드에 대한 문서에 대한 링크를 제공하는 매우 강력한 기능입니다.

프로그램 실행

코드 실행은 왼쪽에서 첫 번째 아이콘 인 실행 아이콘 또는 F3 버튼을 눌러 수행됩니다.

프로그램 로그

실행 된 코드의 로그는 Log탭. 프로그램 실행에 대한 오류, 경고 또는 참고 사항을 설명합니다. 코드 문제를 해결하기위한 모든 단서를 얻을 수있는 창입니다.

프로그램 결과

코드 실행 결과는 결과 탭에 표시됩니다. 기본적으로 html 테이블로 형식이 지정됩니다.

프로그램 탭

탐색 영역에는 프로그램을 만들고 관리하는 기능이 있습니다. 또한 프로그램과 함께 사용할 미리 빌드 된 기능을 제공합니다.

서버 파일 및 폴더

이 탭에서 추가 프로그램을 생성하고 분석 할 데이터를 가져오고 기존 데이터를 쿼리 할 수 ​​있습니다. 폴더 바로 가기를 만드는 데 사용할 수도 있습니다.

과제

작업 탭은 입력 변수 만 제공하여 내장 SAS 프로그램을 사용하는 기능을 제공합니다. 예를 들어 통계 폴더 아래에서 SAS 데이터 세트 이름과 변수 이름 만 제공하여 선형 회귀를 수행하는 SAS 프로그램을 찾을 수 있습니다.

짧은 발췌

스 니펫 탭은 SAS 매크로를 작성하고 기존 데이터 세트에서 파일을 생성하는 기능을 제공합니다.

프로그램 라이브러리

SAS는 SAS 라이브러리에 데이터 세트를 저장합니다. 임시 라이브러리는 단일 세션에만 사용할 수 있으며 이름은 WORK입니다. 그러나 영구 라이브러리는 항상 사용할 수 있습니다.

파일 바로 가기

이 탭은 SAS 환경 외부에 저장된 파일에 액세스하는 데 사용됩니다. 이러한 파일에 대한 바로 가기는이 탭에 저장됩니다.

SAS 프로그래밍은 먼저 데이터 세트를 메모리에 생성 / 읽은 다음이 데이터에 대한 분석을 수행합니다. 이를 달성하기 위해 프로그램이 작성되는 흐름을 이해할 필요가 있습니다.

SAS 프로그램 구조

아래 다이어그램은 SAS 프로그램을 생성하기 위해 주어진 순서대로 작성해야하는 단계를 보여줍니다.

모든 SAS 프로그램에는 입력 데이터 읽기, 데이터 분석 및 분석 결과 제공을 완료하기 위해 이러한 모든 단계가 있어야합니다. 또한RUN 각 단계의 끝에있는 문은 해당 단계의 실행을 완료하는 데 필요합니다.

데이터 단계

이 단계에는 필요한 데이터 세트를 SAS 메모리에로드하고 데이터 세트의 변수 (열이라고도 함)를 식별하는 작업이 포함됩니다. 또한 기록 (관찰 또는 주제라고도 함)을 캡처합니다. DATA 문의 구문은 다음과 같습니다.

통사론

DATA data_set_name;		#Name the data set.
INPUT var1,var2,var3; 		#Define the variables in this data set.
NEW_VAR;			#Create new variables.
LABEL;			      	#Assign labels to variables.
DATALINES;		      	#Enter the data.
RUN;

아래 예제는 데이터 세트 이름 지정, 변수 정의, 새 변수 생성 및 데이터 입력의 간단한 경우를 보여줍니다. 여기서 문자열 변수는 끝에 $가 있고 숫자 값에는 $가 없습니다.

DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
comm = SALARY*0.25;
LABEL ID = 'Employee ID' comm = 'COMMISION';
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;

PROC 단계

이 단계에는 SAS 내장 프로 시저를 호출하여 데이터를 분석합니다.

통사론

PROC procedure_name options; #The name of the proc.
RUN;

아래 예는 MEANS 프로 시저를 사용하여 데이터 세트에있는 숫자 변수의 평균값을 인쇄합니다.

PROC MEANS;
RUN;

출력 단계

데이터 세트의 데이터는 조건부 출력 문으로 표시 할 수 있습니다.

통사론

PROC PRINT DATA = data_set;
OPTIONS;
RUN;

아래 예는 출력에서 ​​where 절을 사용하여 데이터 세트에서 몇 개의 레코드 만 생성하는 것을 보여줍니다.

PROC PRINT DATA = TEMP;
WHERE SALARY > 700;
RUN;

완전한 SAS 프로그램

아래는 위의 각 단계에 대한 전체 코드입니다.

프로그램 출력

RESULTS

다른 프로그래밍 언어와 마찬가지로 SAS 언어에는 SAS 프로그램을 생성하기위한 자체 구문 규칙이 있습니다.

모든 SAS 프로그램의 세 가지 구성 요소 인 문, 변수 및 데이터 세트는 구문에 대한 아래 규칙을 따릅니다.

SAS 선언문

  • 명령문은 어디서나 시작하고 어디에서나 끝날 수 있습니다. 마지막 행 끝에있는 세미콜론은 명령문의 끝을 표시합니다.

  • 여러 SAS 문이 동일한 줄에있을 수 있으며 각 문은 세미콜론으로 끝납니다.

  • 공백을 사용하여 SAS 프로그램 문에서 구성 요소를 구분할 수 있습니다.

  • SAS 키워드는 대소 문자를 구분하지 않습니다.

  • 모든 SAS 프로그램은 RUN 문으로 끝나야합니다.

SAS 변수 이름

SAS의 변수는 SAS 데이터 세트의 열을 나타냅니다. 변수 이름은 아래 규칙을 따릅니다.

  • 최대 32 자까지 가능합니다.

  • 공백을 포함 할 수 없습니다.

  • A-Z (대소 문자 구분 안 함) 또는 밑줄 (_)로 시작해야합니다.

  • 숫자를 포함 할 수 있지만 첫 번째 문자로는 사용할 수 없습니다.

  • 변수 이름은 대소 문자를 구분하지 않습니다.

# Valid Variable Names
REVENUE_YEAR
MaxVal
_Length

# Invalid variable Names
Miles Per Liter	#contains Space.
RainfFall%      # contains apecial character other than underscore.
90_high		# Starts with a number.

SAS 데이터 세트

DATA 문은 새 SAS 데이터 세트의 생성을 표시합니다. DATA 집합 생성 규칙은 다음과 같습니다.

  • DATA 문 뒤의 단일 단어는 임시 데이터 세트 이름을 나타냅니다. 즉, 세션이 끝날 때 데이터 세트가 지워집니다.

  • 데이터 세트 이름은 영구 데이터 세트로 만드는 라이브러리 이름을 접두어로 사용할 수 있습니다. 즉, 세션이 종료 된 후에도 데이터 세트가 유지됩니다.

  • SAS 데이터 세트 이름이 생략되면 SAS는 DATA1, DATA2 등과 같이 SAS에서 생성 된 이름으로 임시 데이터 세트를 생성합니다.

# Temporary data sets.
DATA TempData;
DATA abc;
DATA newdat;

# Permanent data sets.
DATA LIBRARY1.DATA1
DATA MYLIB.newdat;

SAS 파일 확장자

SAS 프로그램, 데이터 파일 및 프로그램 결과는 창에 다양한 확장자로 저장됩니다.

  • *.sas − SAS 편집기 또는 텍스트 편집기를 사용하여 편집 할 수있는 SAS 코드 파일을 나타냅니다.

  • *.log − 제출 된 SAS 프로그램에 대한 오류, 경고 및 데이터 세트 세부 정보와 같은 정보가 포함 된 SAS 로그 파일을 나타냅니다.

  • *.mht / *.html −SAS 결과 파일을 나타냅니다.

  • *.sas7bdat − 변수 이름, 레이블 및 계산 결과를 포함하는 SAS 데이터 세트를 포함하는 SAS 데이터 파일을 나타냅니다.

SAS의 주석

SAS 코드의 주석은 두 가지 방법으로 지정됩니다. 다음은이 두 가지 형식입니다.

*메시지; 주석 입력

형식의 주석 *message;세미콜론이나 일치하지 않는 인용 부호를 포함 할 수 없습니다. 또한 이러한 주석 내에 매크로 문에 대한 참조가 없어야합니다. 여러 줄에 걸쳐있을 수 있으며 길이는 제한이 없습니다. 다음은 한 줄 주석 예제입니다.

* This is comment ;

다음은 여러 줄 주석 예제입니다-

* This is first line of the comment
* This is second line of the comment;

/ * message * / 주석 입력

형식의 주석 /*message*/더 자주 사용되며 중첩 될 수 없습니다. 그러나 여러 줄에 걸쳐있을 수 있으며 길이에 제한이 없습니다. 다음은 한 줄 주석 예제입니다-

/* This is comment */

다음은 여러 줄 주석 예제입니다-

/* This is first line of the comment
* This is second line of the comment */

분석을 위해 SAS 프로그램에서 사용할 수있는 데이터를 SAS 데이터 세트라고합니다. DATA 스텝을 사용하여 생성되며 SAS는 다음과 같은 데이터 소스로 다양한 파일을 읽을 수 있습니다.CSV, Excel, Access, SPSS and also raw data. 또한 사용할 수있는 많은 내장 데이터 소스가 있습니다.

  • 데이터 세트는 temporary Data Set SAS 프로그램에서 사용하고 세션이 실행 된 후 폐기되는 경우

  • 그러나 나중에 사용하기 위해 영구적으로 저장하면 permanent Data set. 모든 영구 데이터 세트는 특정 라이브러리에 저장됩니다.

SAS 데이터 세트는 행과 열의 형태로 저장되며 SAS 데이터 테이블이라고도합니다. 아래에는 내장 된 영구 데이터 세트와 외부 소스의 빨간색 인 영구 데이터 세트의 예가 나와 있습니다.

SAS 내장 데이터 세트

이러한 데이터 세트는 이미 설치된 SAS 소프트웨어에서 사용할 수 있습니다. 데이터 분석을위한 샘플 식을 공식화하는 데 탐색하고 사용할 수 있습니다. 이러한 데이터 세트를 탐색하려면Libraries -> My Libraries -> SASHELP. 확장하면 사용 가능한 모든 내장 데이터 세트의 이름 목록이 표시됩니다.

아래로 스크롤하여 이름이 지정된 데이터 세트를 찾습니다. CARS이 데이터 세트를 두 번 클릭하면 오른쪽 창에 열리고 추가로 탐색 할 수 있습니다. 오른쪽 창 아래에있는보기 최대화 버튼을 사용하여 왼쪽 창을 최소화 할 수도 있습니다.

하단의 스크롤 막대를 사용하여 오른쪽으로 스크롤하여 테이블의 모든 열과 해당 값을 탐색 할 수 있습니다.

외부 데이터 세트 가져 오기

SAS Studio에서 제공되는 가져 오기 기능을 사용하여 자체 파일을 데이터 세트로 내보낼 수 있습니다. 그러나 이러한 파일은 SAS 서버 폴더에서 사용할 수 있어야합니다. 따라서 아래의 업로드 옵션을 사용하여 소스 데이터 파일을 SAS 폴더에 업로드해야합니다.Server Files and Folders.

다음으로 SAS 프로그램에서 위 파일을 가져 와서 사용합니다. 이를 위해 우리는 옵션을 사용합니다Tasks -> Utilities -> Import data 아래 그림과 같이. 데이터 세트에 대한 파일을 선택하기 위해 오른쪽에 창이 열리는 데이터 가져 오기 버튼을 두 번 클릭합니다.

다음을 클릭하십시오 Select Files오른쪽 창의 데이터 가져 오기 프로그램 아래에있는 버튼을 클릭합니다. 다음은 가져올 수있는 파일 유형 목록입니다.

로컬 시스템에 저장된 "employee.txt"파일을 선택하고 아래와 같이 파일을 가져옵니다.

가져온 데이터보기

실행 옵션을 사용하여 생성 된 기본 가져 오기 코드를 실행하여 가져온 데이터를 볼 수 있습니다.

위와 동일한 접근 방식을 사용하여 다른 파일 유형을 가져 와서 다양한 SAS 프로그램에서 사용할 수 있습니다.

일반적으로 SAS의 변수는 분석중인 데이터 테이블의 열 이름을 나타냅니다. 그러나 프로그래밍 루프에서 카운터로 사용하는 것과 같은 다른 목적으로도 사용할 수 있습니다. 현재 장에서는 SAS 데이터 세트의 열 이름으로 SAS 변수를 사용하는 방법을 살펴 봅니다.

SAS 변수 유형

SAS에는 다음과 같은 세 가지 유형의 변수가 있습니다.

숫자 변수

이것이 기본 변수 유형입니다. 이러한 변수는 수학적 표현에 사용됩니다.

통사론

INPUT VAR1 VAR2 VAR3; 		#Define numeric variables in the data set.

위의 구문에서 INPUT 문은 숫자 변수의 선언을 보여줍니다.

INPUT ID SALARY COMM_PERCENT;

문자 변수

문자 변수는 수학 표현식에서 사용되지 않는 값에 사용됩니다. 텍스트 또는 문자열로 처리됩니다. 변수 이름 끝에 공백이있는 $ sing을 추가하면 변수가 문자 변수가됩니다.

통사론

INPUT VAR1 $ VAR2 $ VAR3 $; 	#Define character variables in the data set.

위 구문에서 INPUT 문은 문자 변수의 선언을 보여줍니다.

INPUT FNAME $ LNAME $ ADDRESS $;

날짜 변수

이러한 변수는 날짜로만 취급되며 유효한 날짜 형식이어야합니다. 변수 이름 끝에 공백이있는 날짜 형식을 추가하면 변수가 날짜 변수가됩니다.

통사론

INPUT VAR1 DATE11. VAR2 MMDDYY10. ; #Define date variables in the data set.

위 구문에서 INPUT 문은 날짜 변수의 선언을 보여줍니다.

INPUT DOB DATE11. START_DATE MMDDYY10. ;

SAS 프로그램에서 변수 사용

위의 변수는 아래 예제와 같이 SAS 프로그램에서 사용됩니다.

아래 코드는 세 가지 유형의 변수가 SAS 프로그램에서 선언되고 사용되는 방법을 보여줍니다.

DATA TEMP;
INPUT ID NAME $ SALARY DEPT $ DOJ DATE9. ;
FORMAT DOJ DATE9. ;
DATALINES;
1 Rick 623.3 IT 02APR2001
2 Dan 515.2 OPS 11JUL2012
3 Michelle 611 IT 21OCT2000
4 Ryan 729 HR 30JUL2012
5 Gary 843.25 FIN 06AUG2000
6 Tusar 578 IT 01MAR2009
7 Pranab 632.8 OPS 16AUG1998
8 Rasmi 722.5 FIN 13SEP2014
;
PROC PRINT DATA = TEMP;
RUN;

위의 예에서 모든 문자 변수는 $ 기호 다음에 선언되고 날짜 변수는 날짜 형식 뒤에 선언됩니다. 위 프로그램의 출력은 다음과 같습니다.

변수 사용

변수는 데이터 분석에 매우 유용합니다. 통계 분석이 적용되는 표현에 사용됩니다. 이름이 내장 된 데이터 세트를 분석하는 예를 살펴 보겠습니다.CARS 아래에있는 Libraries → My Libraries → SASHELP. 변수와 데이터 유형을 탐색하려면 두 번 클릭하십시오.

다음으로 SAS studio의 작업 옵션을 사용하여 이러한 변수 중 일부에 대한 요약 통계를 생성 할 수 있습니다. 이동Tasks -> Statistics -> Summary Statistics더블 클릭하면 아래와 같은 창이 열립니다. 데이터 세트 선택SASHELP.CARS분석 변수에서 MPG_CITY, MPG_Highway 및 Weight의 세 가지 변수를 선택합니다. Ctrl 키를 누른 상태에서 클릭하여 변수를 선택합니다. 실행을 클릭하십시오.

위 단계 후에 결과 탭을 클릭하십시오. 선택한 세 변수의 통계 요약을 보여줍니다. 마지막 열은 분석에 사용 된 관찰 (레코드) 수를 나타냅니다.

SAS의 문자열은 한 쌍의 작은 따옴표로 묶인 값입니다. 또한 문자열 변수는 변수 선언 끝에 공백과 $ 기호를 추가하여 선언됩니다. SAS에는 문자열을 분석하고 조작하는 많은 강력한 기능이 있습니다.

문자열 변수 선언

아래와 같이 문자열 변수와 그 값을 선언 할 수 있습니다. 아래 코드에서 길이가 6과 5 인 두 개의 문자 변수를 선언합니다. LENGTH 키워드는 다중 관찰을 생성하지 않고 변수를 선언하는 데 사용됩니다.

data string_examples;
   LENGTH string1 $ 6 String2 $ 5;
   /*String variables of length 6 and 5 */
   String1 = 'Hello';
   String2 = 'World';
   Joined_strings =  String1 ||String2 ;
run;
proc print data = string_examples noobs;
run;

위의 코드를 실행하면 변수 이름과 해당 값을 보여주는 출력이 표시됩니다.

문자열 함수

다음은 자주 사용되는 일부 SAS 기능의 예입니다.

SUBSTRN

이 함수는 시작 및 끝 위치를 사용하여 하위 문자열을 추출합니다. 끝 위치가 언급되지 않은 경우 문자열 끝까지 모든 문자를 추출합니다.

통사론

SUBSTRN('stringval',p1,p2)

다음은 사용 된 매개 변수에 대한 설명입니다.

  • stringval 문자열 변수의 값입니다.
  • p1 추출 시작 위치입니다.
  • p2 추출의 최종 위치입니다.

data string_examples;
   LENGTH string1 $ 6 ;
   String1 = 'Hello';
   sub_string1 = substrn(String1,2,4) ;
   /*Extract from position 2 to 4 */
   sub_string2 = substrn(String1,3) ;
   /*Extract from position 3 onwards */
run;
proc print data = string_examples noobs;
run;

위 코드를 실행하면 substrn 함수의 결과를 보여주는 출력이 표시됩니다.

트림

이 함수는 문자열에서 후행 공백을 제거합니다.

통사론

TRIMN('stringval')

다음은 사용 된 매개 변수에 대한 설명입니다.

  • stringval 문자열 변수의 값입니다.
data string_examples;
   LENGTH string1 $ 7  ;
   String1='Hello  ';
   length_string1 = lengthc(String1);
   length_trimmed_string = lengthc(TRIMN(String1));
run;
proc print data = string_examples noobs;
run;

위 코드를 실행하면 TRIMN 함수의 결과를 보여주는 출력이 표시됩니다.

SAS의 배열은 인덱스 값을 사용하여 일련의 값을 저장하고 검색하는 데 사용됩니다. 인덱스는 예약 된 메모리 영역의 위치를 ​​나타냅니다.

통사론

SAS에서 배열은 다음 구문을 사용하여 선언됩니다.

ARRAY ARRAY-NAME(SUBSCRIPT) ($) VARIABLE-LIST ARRAY-VALUES

위의 구문에서-

  • ARRAY 배열을 선언하는 SAS 키워드입니다.

  • ARRAY-NAME 변수 이름과 동일한 규칙을 따르는 배열의 이름입니다.

  • SUBSCRIPT 배열이 저장할 값의 수입니다.

  • ($) 배열이 문자 값을 저장할 경우에만 사용되는 선택적 매개 변수입니다.

  • VARIABLE-LIST 배열 값의 자리 표시자인 선택적 변수 목록입니다.

  • ARRAY-VALUES배열에 저장된 실제 값입니다. 여기에서 선언하거나 파일 또는 데이터 라인에서 읽을 수 있습니다.

배열 선언의 예

위의 구문을 사용하여 다양한 방법으로 배열을 선언 할 수 있습니다. 다음은 그 예입니다.

# Declare an array of length 5 named AGE with values.
ARRAY AGE[5] (12 18 5 62 44);

# Declare an array of length 5 named COUNTRIES with values starting at index 0.
ARRAY COUNTRIES(0:8) A B C D E F G H I;

# Declare an array of length 5 named QUESTS which contain character values.
ARRAY QUESTS(1:5) $ Q1-Q5;

# Declare an array of required length as per the number of values supplied.
ARRAY ANSWER(*) A1-A100;

배열 값 액세스

배열에 저장된 값은 다음을 사용하여 액세스 할 수 있습니다. print절차는 아래와 같습니다. 위의 방법 중 하나를 사용하여 선언 한 후 DATALINES 문을 사용하여 데이터를 제공합니다.

DATA array_example;
INPUT a1 $ a2 $ a3 $ a4 $ a5 $; ARRAY colours(5) $ a1-a5;
mix = a1||'+'||a2;
DATALINES;
yello pink orange green blue
;
RUN;
PROC PRINT DATA = array_example;
RUN;

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

OF 연산자 사용

OF 연산자는 배열의 전체 행에 대한 계산을 수행하기 위해 배열 형식의 데이터를 분석 할 때 사용됩니다. 아래 예에서는 각 행에 값의 합계와 평균을 적용합니다.

DATA array_example_OF;
   INPUT A1 A2 A3 A4;
   ARRAY A(4) A1-A4;
   A_SUM = SUM(OF A(*));
   A_MEAN = MEAN(OF A(*));
   A_MIN = MIN(OF A(*));
   DATALINES;
   21 4 52 11
   96 25 42 6
   ;
   RUN;
   PROC PRINT DATA = array_example_OF;
   RUN;

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

IN 연산자 사용

배열의 값은 배열의 행에 값이 있는지 확인하는 IN 연산자를 사용하여 액세스 할 수도 있습니다. 아래 예에서는 데이터에서 "Yellow"색상의 가용성을 확인합니다. 이 값은 대소 문자를 구분합니다.

DATA array_in_example;
   INPUT A1 $ A2 $ A3 $ A4 $;
   ARRAY COLOURS(4) A1-A4;
   IF 'yellow' IN COLOURS THEN available = 'Yes';ELSE available = 'No';
   DATALINES;
   Orange pink violet yellow
   ;
   RUN;
   PROC PRINT DATA = array_in_example;
   RUN;

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

SAS는 다양한 숫자 데이터 형식을 처리 할 수 ​​있습니다. 변수 이름 끝에 이러한 형식을 사용하여 데이터에 특정 숫자 형식을 적용합니다. SAS는 두 종류의 숫자 형식을 사용합니다. 호출되는 숫자 데이터의 특정 형식을 읽기위한 것informat 다른 하나는 다음과 같은 특정 형식으로 숫자 데이터를 표시하기위한 것입니다. output format.

통사론

숫자 정보의 구문은 다음과 같습니다.

Varname Formatnamew.d

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Varname 변수의 이름입니다.

  • Formatname 변수에 적용된 숫자 형식의 이름입니다.

  • w 변수에 대해 저장할 수있는 최대 데이터 열 수 (소수점 뒤의 자릿수 및 소수점 자체 포함)입니다.

  • d 소수점 이하 자릿수입니다.

숫자 형식 읽기

다음은 SAS로 데이터를 읽는 데 사용되는 형식 목록입니다.

입력 숫자 형식

체재 사용하다
n.

소수점이없는 최대 "n"열 수입니다.

n.p

소수점이 "p"인 열의 최대 "n"개.

COMMAn.p

쉼표 또는 달러 기호를 제거하는 소수점 이하 "p"가있는 열의 최대 "n"개입니다.

COMMAn.p

쉼표 또는 달러 기호를 제거하는 소수점 이하 "p"가있는 열의 최대 "n"개입니다.

숫자 형식 표시

데이터를 읽는 동안 형식을 적용하는 것과 유사하게 아래는 SAS 프로그램의 출력에 데이터를 표시하는 데 사용되는 형식 목록입니다.

출력 숫자 형식

체재 사용하다
n.

소수점없이 최대 "n"자릿수를 씁니다.

n.p

소수점 "p"로 최대 "np"열 수를 기록합니다.

DOLLARn.p

소수점 이하 p 자리, 선행 달러 기호 및 천 자리에 쉼표를 사용하여 최대 "n"개의 열을 씁니다.

참고-

  • 소수점 뒤의 자릿수가 형식 지정자보다 작 으면zeros will be appended 끝에.

  • 소수점 뒤의 자릿수가 형식 지정자보다 크면 마지막 자릿수가 rounded off.

아래 예는 위의 시나리오를 보여줍니다.

DATA MYDATA1;
input x 6.; /*maxiiuum width of the data*/
format x 6.3;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA1;
RUN;

DATA MYDATA2;
input x 6.; /*maximum width of the data*/
format x 5.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA2;
RUN;
DATA MYDATA3;
input x 6.; /*maximum width of the data*/
format x DOLLAR10.2;
datalines;
8722
93.2
.1122
15.116
PROC PRINT DATA = MYDATA3;
RUN;

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

# MYDATA1.
Obs 	x
1 	8722.0 # Display 6 columns with zero appended after decimal.
2 	93.200 # Display 6 columns with zero appended after decimal.
3 	0.112  # No integers before decimal, so display 3 available digits after decimal.
4 	15.116 # Display 6 columns with 3 available digits after decimal.

# MYDATA2
Obs 	x
1 	8722  # Display 5 columns. Only 4 are available.
2 	93.20 # Display 5 columns with zero appended after decimal.
3 	0.11  # Display 5 columns with 2 places after decimal.
4 	15.12 # Display 5 columns with 2 places after decimal.

# MYDATA3
Obs 	x
1 	$8,722.00 # Display 10 columns with leading $ sign, comma at thousandth place and zeros appended after decimal.
2 	$93.20 # Only 2 integers available before decimal and one available after the decimal. 3 $0.11	  # No integers available before decimal and two available after the decimal.
4 	$15.12    # Only 2 integers available before decimal and two available after the decimal.

SAS의 연산자는 수학, 논리 또는 비교 표현식에 사용되는 기호입니다. 이러한 기호는 SAS 언어에 내장되어 있으며 여러 연산자를 단일 표현식으로 결합하여 최종 출력을 제공 할 수 있습니다.

아래는 SAS 범주의 연산자 목록입니다.

  • 산술 연산자
  • 논리 연산자
  • 비교 연산자
  • 최소 / 최대 연산자
  • 연결 연산자

하나씩 살펴 보겠습니다. 연산자는 항상 SAS 프로그램에서 분석중인 데이터의 일부인 변수와 함께 사용됩니다.

산술 연산자

아래 표는 산술 연산자의 세부 사항을 설명합니다. 두 개의 데이터 변수를 가정 해 보겠습니다.V1V2값으로 84 각기.

운영자 기술
+ 부가 V1 + V2 = 12
- 빼기 V1-V2 = 4
* 곱셈 V1 * V2 = 32
/ 분할 V1 / V2 = 2
** 지수화 V1 ** V2 = 4096

DATA MYDATA1;
input @1 COL1 4.2	@7 COL2 3.1; 
Add_result = COL1+COL2;
Sub_result = COL1-COL2;
Mult_result = COL1*COL2;
Div_result = COL1/COL2;
Expo_result = COL1**COL2;
datalines;
11.21 5.3
3.11  11
;
PROC PRINT DATA = MYDATA1;
RUN;

위의 코드를 실행하면 다음과 같은 출력이 표시됩니다.

논리 연산자

아래 표는 논리 연산자의 세부 사항을 설명합니다. 이 연산자는 표현식의 진실 값을 평가합니다. 따라서 논리 연산자의 결과는 항상 1 또는 0입니다. 두 개의 데이터 변수를 가정 해 보겠습니다.V1V2값으로 84 각기.

운영자 기술
& AND 연산자. 두 데이터 값이 모두 참으로 평가되면 결과는 1이고 그렇지 않으면 0입니다. (V1> 2 & V2> 3)은 0을 제공합니다.
| OR 연산자. 데이터 값 중 하나가 참으로 평가되면 결과는 1이고 그렇지 않으면 0입니다. (V1> 9 & V2> 3)은 1입니다.
~ NOT 연산자. 값이 FALSE이거나 누락 된 값이 1 인 표현식 형식의 NOT 연산자 결과입니다. 그렇지 않으면 0입니다. NOT (V1> 3)은 1입니다.

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
and_=(COL1 > 10 & COL2 > 5 );
or_ = (COL1 > 12 | COL2 > 15 );
not_ = ~( COL2 > 7 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

위의 코드를 실행하면 다음과 같은 출력이 표시됩니다.

비교 연산자

아래 표는 비교 연산자의 세부 사항을 설명합니다. 이 연산자는 변수의 값을 비교하고 결과는 TRUE 인 경우 1, False 인 경우 0으로 표시되는 진리 값입니다. 두 개의 데이터 변수를 가정 해 보겠습니다.V1V2값으로 84 각기.

운영자 기술
= EQUAL 연산자. 두 데이터 값이 모두 같으면 결과는 1이고 그렇지 않으면 0입니다. (V1 = 8)은 1을 제공합니다.
^ = 같지 않은 연산자. 두 데이터 값이 같지 않으면 결과는 1이고 그렇지 않으면 0입니다. (V1 ^ = V2)는 1을 제공합니다.
< LESS THAN 연산자. (V2 <V2)는 1을 제공합니다.
<= LESS THAN 또는 EQUAL TO 연산자. (V2 <= 4)는 1을 제공합니다.
> 더 큰 연산자. (V2> V1)은 1을 제공합니다.
> = GREATER THAN 또는 EQUAL TO 연산자. (V2> = V1)은 0을 제공합니다.
IN 연산자. 변수의 값이 주어진 값 목록에있는 값 중 하나와 같으면 1을 반환하고 그렇지 않으면 0을 반환합니다. (5,7,9,8)의 V1은 1을 제공합니다.

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1; 
EQ_ = (COL1 = 11.21);
NEQ_= (COL1 ^= 11.21);
GT_ = (COL2 => 8);
LT_ = (COL2 <= 12);
IN_ = COL2 in( 6.2,5.3,12 );
datalines;
11.21 5.3
3.11  11.4
;
PROC PRINT DATA = MYDATA1;
RUN;

위의 코드를 실행하면 다음과 같은 출력이 표시됩니다.

최소 / 최대 연산자

아래 표는 최소 / 최대 연산자에 대한 세부 정보를 설명합니다. 이러한 연산자는 행에서 변수 값을 비교하고 행의 값 목록에서 최소값 또는 최대 값이 반환됩니다.

운영자 기술
MIN 연산자. 행의 값 목록에서 최소값을 반환합니다. MIN (45.2,11.6,15.41)은 11.6을 제공합니다.
MAX MAX 연산자. 행의 값 목록에서 최대 값을 반환합니다. MAX (45.2,11.6,15.41)는 45.2를 제공합니다.

DATA MYDATA1;
input @1 COL1 5.2	@7 COL2 4.1 @12 COL3 6.3; 
min_ = MIN(COL1 , COL2 , COL3);
max_ = MAX( COL1, COl2 , COL3);
datalines;
11.21 5.3 29.012
3.11  11.4 18.512
;
PROC PRINT DATA = MYDATA1;
RUN;

위의 코드를 실행하면 다음과 같은 출력이 표시됩니다.

연결 연산자

아래 표는 Concatenation 연산자의 세부 정보를 설명합니다. 이 연산자는 둘 이상의 문자열 값을 연결합니다. 단일 문자 값이 반환됩니다.

운영자 기술
|| 연결 연산자. 둘 이상의 값을 연결하여 반환합니다. '안녕하세요'|| ' World '는 Hello World를 제공합니다.

DATA MYDATA1;
input  COL1 $	COL2 $ COL3 $; 
concat_ = (COL1 || COL2 || COL3);
datalines;
Tutorial s point
simple easy learning
;
PROC PRINT DATA = MYDATA1;
RUN;

위의 코드를 실행하면 다음과 같은 출력이 표시됩니다.

연산자 우선 순위

연산자 우선 순위는 복잡한 식에있는 여러 연산자의 평가 순서를 나타냅니다. 아래 표는 연산자 그룹의 우선 순위를 설명합니다.

그룹 주문 기호
그룹 I 오른쪽에서 왼쪽으로 ** +-MIN MAX 아님
그룹 II 좌에서 우로 * /
그룹 III 좌에서 우로 +-
그룹 IV 좌에서 우로 ||
그룹 V 좌에서 우로 <<= => =>

코드 블록을 여러 번 실행해야하는 상황이 발생할 수 있습니다. 일반적으로 명령문은 순차적으로 실행됩니다. 함수의 첫 번째 명령문이 먼저 실행되고 두 번째 명령문이 실행되는 식입니다. 그러나 동일한 명령문 세트를 반복해서 실행하려면 루프의 도움이 필요합니다.

SAS에서 루핑은 DO 문을 사용하여 수행됩니다. 그것은 또한 불린다DO Loop. 다음은 SAS의 일반적인 DO 루프 문 형식입니다.

흐름 다이어그램

다음은 SAS의 DO 루프 유형입니다.

Sr. 아니. 루프 유형 및 설명
1 DO 인덱스.

루프는 시작 값에서 인덱스 변수의 중지 값까지 계속됩니다.

2 하면서하십시오.

while 조건이 거짓이 될 때까지 루프가 계속됩니다.

끝까지하십시오.

UNTIL 조건이 True가 될 때까지 루프가 계속됩니다.

의사 결정 구조는 프로그래머가 프로그램에서 평가하거나 테스트 할 하나 이상의 조건을 지정하고 조건이 다음과 같은 경우 실행될 명령문을 지정해야합니다. true및 선택적으로 조건이 다음과 같은 것으로 결정되는 경우 실행될 다른 명령문 false.

다음은 대부분의 프로그래밍 언어에서 발견되는 일반적인 의사 결정 구조의 일반적인 형태입니다.

SAS는 다음과 같은 유형의 의사 결정 진술을 제공합니다. 세부 사항을 확인하려면 다음 링크를 클릭하십시오.

Sr. 아니. 명세서 유형 및 설명
1 IF 문.

if statement조건으로 구성됩니다. 조건이 참이면 특정 데이터를 가져옵니다.

2 IF-THEN-ELSE 문.

if statement 부울 조건이 거짓 일 때 실행되는 else 문이 뒤 따릅니다.

IF-THEN-ELSE-IF 문.

if statement 또 다른 IF-THEN 문 쌍이 뒤 따르는 else 문이 이어집니다.

4 IF-THEN-DELETE 문.

if statement 조건으로 구성되며 참이면 관측치에서 특정 데이터를 삭제합니다.

SAS에는 데이터 분석 및 처리에 도움이되는 다양한 내장 기능이 있습니다. 이러한 함수는 DATA 문의 일부로 사용됩니다. 데이터 변수를 인수로 취하고 다른 변수에 저장된 결과를 반환합니다. 함수 유형에 따라 인수 수는 다를 수 있습니다. 일부 함수는 0 인수를 허용하는 반면 다른 일부는 고정 된 수의 변수를 허용합니다. 다음은 SAS가 제공하는 기능 유형 목록입니다.

통사론

SAS에서 함수를 사용하기위한 일반적인 구문은 다음과 같습니다.

FUNCTIONNAME(argument1, argument2...argumentn)

여기서 인수는 상수, 변수, 표현식 또는 다른 함수일 수 있습니다.

기능 카테고리

용도에 따라 SAS의 기능은 다음과 같이 분류됩니다.

  • Mathematical
  • 날짜와 시간
  • Character
  • Truncation
  • Miscellaneous

수학 함수

변수 값에 대한 몇 가지 수학적 계산을 적용하는 데 사용되는 함수입니다.

아래의 SAS 프로그램은 몇 가지 중요한 수학 함수의 사용을 보여줍니다.

data Math_functions;

v1=21; v2=42; v3=13; v4=10; v5=29;

/* Get Maximum value */
max_val = MAX(v1,v2,v3,v4,v5);

/* Get Minimum value */
min_val = MIN (v1,v2,v3,v4,v5);

/* Get Median value */
med_val = MEDIAN (v1,v2,v3,v4,v5);

/* Get a random number */
rand_val = RANUNI(0);

/* Get Square root of sum of the values */
SR_val= SQRT(sum(v1,v2,v3,v4,v5));

proc print data = Math_functions noobs;
run;

위의 코드가 실행되면 다음과 같은 출력이 나타납니다.

날짜 및 시간 기능

날짜 및 시간 값을 처리하는 데 사용되는 함수입니다.

아래 SAS 프로그램은 날짜 및 시간 기능의 사용을 보여줍니다.

data date_functions;
INPUT @1 date1 date9. @11 date2 date9.;
format date1 date9.  date2 date9.;

/* Get the interval between the dates in years*/
Years_ = INTCK('YEAR',date1,date2);

/* Get the interval between the dates in months*/
months_ = INTCK('MONTH',date1,date2);

/* Get the week day from the date*/
weekday_ =  WEEKDAY(date1);

/* Get Today's date in SAS date format */
today_ = TODAY();

/* Get current time in SAS time format */
time_ = time();
DATALINES;
21OCT2000 16AUG1998
01MAR2009 11JUL2012
;
proc print data = date_functions noobs;
run;

위의 코드가 실행되면 다음과 같은 출력이 나타납니다.

캐릭터 기능

문자 또는 텍스트 값을 처리하는 데 사용되는 함수입니다.

아래의 SAS 프로그램은 문자 기능의 사용을 보여줍니다.

data character_functions;

/* Convert the string into lower case */
lowcse_ = LOWCASE('HELLO');
  
/* Convert the string into upper case */
upcase_ = UPCASE('hello');
  
/* Reverse the string */
reverse_ = REVERSE('Hello');
  
/* Return the nth word */
nth_letter_ = SCAN('Learn SAS Now',2);
run;

proc print data = character_functions noobs;
run;

위의 코드가 실행되면 다음과 같은 출력이 나타납니다.

잘림 함수

숫자 값을 자르는 데 사용되는 함수입니다.

아래 SAS 프로그램은 자르기 기능의 사용을 보여줍니다.

data trunc_functions;

/* Nearest greatest integer */
ceil_ = CEIL(11.85);
  
/* Nearest greatest integer */
floor_ = FLOOR(11.85);
  
/* Integer portion of a number */
int_ = INT(32.41);
  
/* Round off to nearest value */
round_ = ROUND(5621.78);
run;

proc print data = trunc_functions noobs;
run;

위의 코드가 실행되면 다음과 같은 출력이 나타납니다.

기타 기능

이제 몇 가지 예를 통해 SAS의 기타 기능을 이해하겠습니다.

아래의 SAS 프로그램은 기타 기능의 사용을 보여줍니다.

data misc_functions;

/* Nearest greatest integer */
state2=zipstate('01040');
 
/* Amortization calculation */
payment = mort(50000, . , .10/12,30*12);

proc print data = misc_functions noobs;
run;

위의 코드가 실행되면 다음과 같은 출력이 나타납니다.

입력 방법은 원시 데이터를 읽는 데 사용됩니다. 원시 데이터는 외부 소스 또는 스트림 데이터 라인에서 가져올 수 있습니다. 입력 문은 각 필드에 할당 한 이름으로 변수를 만듭니다. 따라서 입력 문에 변수를 만들어야합니다. 동일한 변수가 SAS Dataset의 출력에 표시됩니다. 다음은 SAS에서 사용할 수있는 다양한 입력 방법입니다.

  • 입력 방법 나열
  • 명명 된 입력 방법
  • 열 입력 방법
  • 형식화 된 입력 방법

각 입력 방법에 대한 자세한 내용은 다음과 같습니다.

입력 방법 나열

이 방법에서 변수는 데이터 유형과 함께 나열됩니다. 원시 데이터는 선언 된 변수의 순서가 데이터와 일치하도록 신중하게 분석됩니다. 구분 기호 (일반적으로 공백)는 인접한 열 쌍 사이에서 균일해야합니다. 누락 된 데이터는 결과가 잘못되어 출력에 문제를 일으킬 수 있습니다.

다음 코드와 출력은 목록 입력 방법의 사용을 보여줍니다.

DATA TEMP;
INPUT   EMPID ENAME $ DEPT $ ;
DATALINES;
1 Rick  IT
2 Dan  OPS
3 Tusar  IT
4 Pranab  OPS
5 Rasmi  FIN
;
PROC PRINT DATA = TEMP;
RUN;

bove 코드를 실행하면 다음 출력이 표시됩니다.

명명 된 입력 방법

이 방법에서 변수는 데이터 유형과 함께 나열됩니다. 원시 데이터는 일치하는 데이터 앞에 변수 이름이 선언되도록 수정됩니다. 구분 기호 (일반적으로 공백)는 인접한 열 쌍 사이에서 균일해야합니다.

다음 코드와 출력은 명명 된 입력 방법의 사용을 보여줍니다.

DATA TEMP;
INPUT   
EMPID= ENAME= $ DEPT= $ ;
DATALINES;
EMPID = 1 ENAME = Rick  DEPT = IT
EMPID = 2 ENAME = Dan  DEPT = OPS
EMPID = 3 ENAME = Tusar  DEPT = IT
EMPID = 4 ENAME = Pranab  DEPT = OPS
EMPID = 5 ENAME = Rasmi  DEPT = FIN
;
PROC PRINT DATA = TEMP;
RUN;

bove 코드를 실행하면 다음 출력이 표시됩니다.

열 입력 방법

이 방법에서 변수는 단일 데이터 열의 값을 지정하는 열의 데이터 유형 및 너비와 함께 나열됩니다. 예를 들어 직원 이름이 최대 9 자이고 각 직원 이름이 10 번째 열에서 시작하는 경우 직원 이름 변수의 열 너비는 10-19가됩니다.

다음 코드는 열 입력 방법의 사용을 보여줍니다.

DATA TEMP;
INPUT   EMPID 1-3 ENAME $ 4-12 DEPT $ 13-16;
DATALINES;
14 Rick     IT 
241Dan      OPS 
30 Sanvi    IT 
410Chanchal OPS 
52 Piyu     FIN 
;
PROC PRINT DATA = TEMP;
RUN;

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

형식화 된 입력 방법

이 방법에서는 공백이 발생할 때까지 고정 된 시작점에서 변수를 읽습니다. 모든 변수에는 고정 된 시작점이 있으므로 모든 변수 쌍 사이의 열 수는 첫 번째 변수의 너비가됩니다. '@n'문자는 변수의 시작 열 위치를 n 번째 열로 지정하는 데 사용됩니다.

다음 코드는 형식화 된 입력 방법의 사용을 보여줍니다.

DATA TEMP;
INPUT   @1 EMPID $ @4 ENAME $ @13 DEPT $ ;
DATALINES;
14 Rick     IT 
241 Dan      OPS 
30 Sanvi    IT 
410 Chanchal OPS 
52 Piyu     FIN 
;
PROC PRINT DATA = TEMP;
RUN;

위의 코드를 실행하면 다음과 같은 결과가 생성됩니다.

SAS에는 다음과 같은 강력한 프로그래밍 기능이 있습니다. Macros이를 통해 코드의 반복적 인 섹션을 피하고 필요할 때 반복해서 사용할 수 있습니다. 또한 동일한 코드의 다른 실행 인스턴스에 대해 다른 값을 사용할 수있는 코드 내에서 동적 변수를 만드는 데 도움이됩니다. 매크로 변수와 유사한 방식으로 여러 번 재사용되는 코드 블록에 대해 매크로를 선언 할 수도 있습니다. 아래 예에서이 두 가지를 모두 볼 수 있습니다.

매크로 변수

이들은 SAS 프로그램에서 반복적으로 사용되는 값을 보유하는 변수입니다. SAS 프로그램의 시작 부분에 선언되며 나중에 프로그램 본문에서 호출됩니다. 범위에서 글로벌 또는 로컬 일 수 있습니다.

글로벌 매크로 변수

SAS 환경에서 사용 가능한 모든 SAS 프로그램에서 액세스 할 수 있으므로 글로벌 매크로 변수라고합니다. 일반적으로 여러 프로그램에서 액세스하는 시스템 할당 변수입니다. 일반적인 예는 시스템 날짜입니다.

다음은 시스템 날짜를 나타내는 SYSDATE라는 SAS 변수의 예입니다. 보고서가 생성되는 매일 SAS 보고서 제목에 시스템 날짜를 인쇄하는 시나리오를 고려하십시오. 제목은 값을 코딩하지 않고 현재 날짜와 요일을 표시합니다. SASHELP 라이브러리에서 사용 가능한 CARS라는 내장 SAS 데이터 세트를 사용합니다.

proc print data = sashelp.cars;
where make = 'Audi' and type = 'Sports' ;
 TITLE "Sales as of &SYSDAY &SYSDATE";
run;

위의 코드가 실행되면 다음과 같은 출력이 표시됩니다.

로컬 매크로 변수

이러한 변수는 프로그램의 일부로 선언 된 SAS 프로그램에서 액세스 할 수 있습니다. 일반적으로 데이터 세트의 서로 다른 관찰을 처리 할 수있는 동일한 SAS 문 sl에 서로 다른 varaibel을 제공하는 데 사용됩니다.

통사론

지역 변수는 아래 구문으로 표시됩니다.

% LET (Macro Variable Name) = Value;

여기에서 값 필드는 프로그램에서 요구하는 숫자, 텍스트 또는 날짜 값을 사용할 수 있습니다. 매크로 변수 이름은 유효한 SAS 변수입니다.

변수는 다음을 사용하는 SAS 문에서 사용됩니다. & 변수 이름의 시작 부분에 추가되는 문자. 아래 프로그램은 'Audi'를 만들고 'Sports'를 입력하는 모든 관찰을 가져옵니다. 결과를 원하는 경우different make, 우리는 변수의 값을 변경해야합니다 make_name프로그램의 다른 부분을 변경하지 않고. 가져 오기 프로그램의 경우이 변수는 모든 SAS 문에서 반복해서 참조 할 수 있습니다.

%LET make_name = 'Audi';
%LET type_name = 'Sports';
proc print data = sashelp.cars;
where make = &make_name and type = &type_name ;
 TITLE "Sales as of &SYSDAY &SYSDATE";
run;

위의 코드가 실행되면 이전 프로그램과 동일한 출력을 얻습니다. 하지만 변경하자type name ...에 'Wagon'동일한 프로그램을 실행하십시오. 아래와 같은 결과를 얻을 수 있습니다.

매크로 프로그램

매크로는 이름으로 참조되고 해당 이름을 사용하여 프로그램 어디서나 사용할 수있는 SAS 문 그룹입니다. % MACRO 문으로 시작하고 % MEND 문으로 끝납니다.

통사론

지역 변수는 아래 구문으로 선언됩니다.

# Creating a Macro program.
%MACRO <macro name>(Param1, Param2,….Paramn);

Macro Statements;

%MEND;

# Calling a Macro program.
%MacroName (Value1, Value2,…..Valuen);

아래 프로그램은 이름이 지정된 매크로 아래에 SAT staemnet 그룹을 표시합니다. 'show_result'; 이 매크로는 다른 SAS 문에서 호출됩니다.

%MACRO show_result(make_ , type_);
proc print data = sashelp.cars;
where make = "&make_" and type = "&type_" ;
TITLE "Sales as of &SYSDAY &SYSDATE";
run;
%MEND;

%show_result(BMW,SUV);

위의 코드가 실행되면 다음과 같은 출력이 표시됩니다.

일반적으로 사용되는 매크로

SAS에는 SAS 프로그래밍 언어에 내장 된 많은 MACRO 문이 있습니다. 이는 명시 적으로 선언하지 않고 다른 SAS 프로그램에서 사용됩니다. 일반적인 예는 특정 조건이 충족 될 때 프로그램을 종료하거나 프로그램 로그에서 변수의 런타임 값을 캡처하는 것입니다. 다음은 몇 가지 예입니다.

% PUT 매크로

이 매크로 문은 텍스트 또는 매크로 변수 정보를 SAS 로그에 기록합니다. 아래 예에서 변수 'today'의 값은 프로그램 로그에 기록됩니다.

data _null_;
CALL SYMPUT ('today',
TRIM(PUT("&sysdate"d,worddate22.)));
run;
%put &today;

위의 코드가 실행되면 다음과 같은 출력이 표시됩니다.

매크로 % RETURN

이 매크로를 실행하면 특정 조건이 참으로 평가 될 때 현재 실행중인 매크로가 정상적으로 종료됩니다. 아래 예에서 변수의 값이"val" 10이되면 매크로는 종료됩니다.

%macro check_condition(val);
   %if &val = 10 %then %return;

   data p;
      x = 34.2;
   run;  

%mend check_condition;  

%check_condition(11)  ;

위의 코드가 실행되면 다음과 같은 출력이 표시됩니다.

매크로 % END

이 매크로 정의에는 %DO %WHILE필요에 따라 % END 문으로 끝나는 루프. 아래 예제에서 test라는 매크로는 사용자 입력을 받고이 입력 값을 사용하여 DO 루프를 실행합니다. DO 루프의 끝은 % end 문을 통해 달성되고 매크로의 끝은 % mend 문을 통해 달성됩니다.

%macro test(finish);
   %let i = 1;
   %do %while (&i <&finish);
      %put the value of i is &i;
      %let i=%eval(&i+1);
   %end;
%mend test;
%test(5)

위의 코드가 실행되면 다음과 같은 출력이 표시됩니다.

IN SAS 날짜는 숫자 값의 특수한 경우입니다. 1960 년 1 월 1 일부터 시작하는 특정 숫자 값이 매일 지정됩니다.이 날짜에는 날짜 값 0이 지정되고 다음 날짜에는 날짜 값 1이 지정됩니다. 이 날짜까지의 이전 날짜는 -1, -2 등으로 표시됩니다. 이러한 접근 방식을 통해 SAS는 미래의 모든 날짜와 과거의 모든 날짜를 나타낼 수 있습니다.

SAS는 소스에서 데이터를 읽을 때 읽은 데이터를 지정된 날짜 형식에 따라 특정 날짜 형식으로 변환합니다. 날짜 값을 저장하는 변수는 필요한 적절한 정보로 선언됩니다. 출력 날짜는 출력 데이터 형식을 사용하여 표시됩니다.

SAS 날짜 정보

아래와 같이 특정 날짜 정보를 사용하여 소스 데이터를 올바르게 읽을 수 있습니다. 정보 형식의 끝에있는 숫자는 정보 형식을 사용하여 완전히 읽을 날짜 문자열의 최소 너비를 나타냅니다. 더 작은 너비는 잘못된 결과를 제공합니다. SAS V9에는 일반 날짜 형식이 있습니다.anydtdte15. 모든 날짜 입력을 처리 할 수 ​​있습니다.

입력 날짜 날짜 폭 정보
2014 년 3 월 11 일 10 mmddyy10.
2014 년 3 월 11 일 8 mmddyy8.
2012 년 12 월 11 일 20 worddate20.
2011 년 3 월 14 일 9 date9.
2011 년 3 월 14 일 11 date11.
2011 년 3 월 14 일 15 anydtdte15.

아래 코드는 다른 날짜 형식의 읽기를 보여줍니다. 출력 값에 형식 문을 적용하지 않았으므로 모든 출력 값은 숫자 일뿐입니다.

DATA TEMP;
INPUT @1 Date1 date11. @12 Date2 anydtdte15. @23 Date3 mmddyy10.   ;
DATALINES;
02-mar-2012 3/02/2012 3/02/2012
;
PROC PRINT DATA = TEMP;
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

SAS 날짜 출력 형식

읽은 후 날짜는 디스플레이에서 요구하는대로 다른 형식으로 변환 할 수 있습니다. 이는 날짜 유형에 대한 형식 문을 사용하여 수행됩니다. 정보와 동일한 형식을 사용합니다.

아래 예에서 날짜는 한 형식으로 읽히지 만 다른 형식으로 표시됩니다.

DATA TEMP;
INPUT  @1 DOJ1 mmddyy10. @12 DOJ2 mmddyy10.;
format  DOJ1 date11.  DOJ2 worddate20. ;
DATALINES;
01/12/2012 02/11/1998 
;
PROC PRINT DATA = TEMP;
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

SAS는 다양한 파일 형식을 포함하는 다양한 소스에서 데이터를 읽을 수 있습니다. SAS 환경에서 사용되는 파일 형식은 아래에서 설명합니다.

  • ASCII (텍스트) 데이터 세트
  • 구분 된 데이터
  • Excel 데이터
  • 계층 적 데이터

ASCII (텍스트) 데이터 세트 읽기

이들은 텍스트 형식의 데이터를 포함하는 파일입니다. 데이터는 일반적으로 공백으로 구분되지만 SAS가 처리 할 수있는 여러 유형의 구분 기호가있을 수 있습니다. 직원 데이터가 포함 된 ASCII 파일을 생각해 봅시다. 이 파일은Infile SAS에서 사용할 수있는 성명.

아래 예에서 우리는 emp_data.txt 지역 환경에서.

data TEMP; 
   infile 
   '/folders/myfolders/sasuser.v94/TutorialsPoint/emp_data.txt'; 
   input empID empName $ Salary Dept $ DOJ date9. ;
   format DOJ date9.;
   run;
   PROC PRINT DATA = TEMP;
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

구분 된 데이터 읽기

열 값이 쉼표 나 파이프 라인 등과 같은 구분 문자로 구분되는 데이터 파일입니다.이 경우에는 dlm 옵션 infile 성명서.

아래 예에서는 로컬 환경에서 emp.csv라는 데이터 파일을 읽습니다.

data TEMP; 
   infile 
   '/folders/myfolders/sasuser.v94/TutorialsPoint/emp.csv' dlm=","; 
   input empID empName $ Salary Dept $ DOJ date9. ;
   format DOJ date9.;
   run;
   PROC PRINT DATA = TEMP;
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

Excel 데이터 읽기

SAS는 가져 오기 기능을 사용하여 Excel 파일을 직접 읽을 수 있습니다. SAS 데이터 세트 장에서 볼 수 있듯이 MS Excel을 포함한 다양한 파일 유형을 처리 할 수 ​​있습니다. emp.xls 파일이 SAS 환경에서 로컬로 사용 가능하다고 가정합니다.

FILENAME REFFILE
"/folders/myfolders/TutorialsPoint/emp.xls"
TERMSTR = CR;

PROC IMPORT DATAFILE = REFFILE
DBMS = XLS
OUT = WORK.IMPORT;
GETNAMES = YES;
RUN;
PROC PRINT DATA = WORK.IMPORT RUN;

위의 코드는 Excel 파일에서 데이터를 읽고 위의 두 파일 유형과 동일한 출력을 제공합니다.

계층 파일 읽기

이 파일에서 데이터는 계층 적 형식으로 존재합니다. 주어진 관찰에 대해 아래에 많은 세부 레코드가 언급 된 헤더 레코드가 있습니다. 세부 기록의 수는 관찰마다 다를 수 있습니다. 아래는 계층 적 파일의 그림입니다.

아래 파일에는 각 부서의 각 직원에 대한 세부 정보가 나열되어 있습니다. 첫 번째 레코드는 부서를 언급하는 헤더 레코드이고 다음 레코드는 DTLS로 시작하는 몇 개의 레코드가 세부 사항 레코드입니다.

DEPT:IT 
DTLS:1:Rick:623 
DTLS:3:Mike:611 
DTLS:6:Tusar:578 
DEPT:OPS
DTLS:7:Pranab:632
DTLS:2:Dan:452
DEPT:HR
DTLS:4:Ryan:487
DTLS:2:Siyona:452

계층 파일을 읽기 위해 IF 절로 헤더 레코드를 식별하고 do 루프를 사용하여 세부 레코드를 처리하는 아래 코드를 사용합니다.

data employees(drop = Type);
   length Type $ 3  Department
      empID $ 3 empName $ 10 Empsal 3 ;
   retain Department;
   infile 
   '/folders/myfolders/TutorialsPoint/empdtls.txt' dlm = ':';
   input Type $ @; if Type = 'DEP' then input Department $;
   else do;
      input empID  empName $ Empsal ;
      output;
   end;
run;

   PROC PRINT DATA = employees;
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

데이터 세트 읽기와 마찬가지로 SAS는 데이터 세트를 다양한 형식으로 작성할 수 있습니다. SAS 파일의 데이터를 일반 텍스트 파일에 쓸 수 있으며 다른 소프트웨어 프로그램에서 읽을 수 있습니다. SAS는PROC EXPORT 데이터 세트를 작성합니다.

PROC 내보내기

데이터를 다른 형식의 파일에 쓰기 위해 SAS 데이터 세트를 내보내는 데 사용되는 SAS 내장 프로 시저입니다.

통사론

SAS에서 프로 시저를 작성하는 기본 구문은 다음과 같습니다.

PROC EXPORT 
DATA = libref.SAS data-set (SAS data-set-options)
OUTFILE = "filename" 
DBMS = identifier LABEL(REPLACE);

다음은 사용 된 매개 변수에 대한 설명입니다.

  • SAS data-set내보내는 데이터 세트 이름입니다. SAS는 다른 운영 체제에서 읽을 수있는 파일을 생성하여 해당 환경의 데이터 세트를 다른 응용 프로그램과 공유 할 수 있습니다. 내장 된 EXPORT 함수를 사용하여 다양한 형식으로 데이터 세트 파일을 출력합니다. 이 장에서는 다음을 사용하여 SAS 데이터 세트를 작성하는 방법을 살펴 봅니다.proc export 옵션과 함께 dlm dbms.

  • SAS data-set-options 내보낼 열의 하위 집합을 지정하는 데 사용됩니다.

  • filename 데이터가 기록되는 파일의 이름입니다.

  • identifier 파일에 기록 될 구분 기호를 언급하는 데 사용됩니다.

  • LABEL 옵션은 파일에 기록 된 변수의 이름을 언급하는 데 사용됩니다.

SASHELP 라이브러리에서 사용할 수있는 cars라는 이름의 SAS 데이터 세트를 사용합니다. 다음 프로그램과 같이 코드와 함께 공백으로 구분 된 텍스트 파일로 내 보냅니다.

proc export data = sashelp.cars
   outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.txt'
   dbms = dlm;
   delimiter = ' ';
   run;

위의 코드를 실행하면 출력을 텍스트 파일로 볼 수 있으며 마우스 오른쪽 버튼을 클릭하면 아래와 같은 내용을 볼 수 있습니다.

CSV 파일 작성

쉼표로 구분 된 파일을 작성하기 위해 "csv"값과 함께 dlm 옵션을 사용할 수 있습니다. 다음 코드는 car_data.csv 파일을 작성합니다.

proc export data = sashelp.cars
   outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_data.csv'
   dbms = csv;
   run;

위의 코드를 실행하면 아래와 같은 결과가 나옵니다.

탭으로 구분 된 파일 작성

탭으로 구분 된 파일을 작성하려면 다음을 사용할 수 있습니다. dlm값이 "tab"인 옵션. 다음 코드는 파일을 작성합니다.car_tab.txt.

proc export data = sashelp.cars
   outfile = '/folders/myfolders/sasuser.v94/TutorialsPoint/car_tab.txt'
   dbms = csv;
   run;

데이터는 출력 전달 시스템 장에서 볼 수있는 HTML 파일로 작성할 수도 있습니다.

여러 SAS 데이터 세트를 연결하여 단일 데이터 세트를 제공 할 수 있습니다. SET성명서. 연결된 데이터 세트의 총 관측치 수는 원래 데이터 세트의 관측치 수의 합계입니다. 관찰 순서는 순차적입니다. 첫 번째 데이터 세트의 모든 관측치 뒤에 두 번째 데이터 세트의 모든 관측치가 이어집니다.

이상적으로 모든 결합 데이터 세트는 동일한 변수를 갖지만 변수 수가 다른 경우 결과에 모든 변수가 나타나고 더 작은 데이터 세트에 대한 결 측값이 나타납니다.

통사론

SAS의 SET 문의 기본 구문은 다음과 같습니다.

SET data-set 1 data-set 2 data-set 3.....;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • data-set1,data-set2 차례대로 쓰여진 데이터 세트 이름입니다.

IT 부서 용과 Non-It 부서 용의 두 가지 데이터 세트에서 사용할 수있는 조직의 직원 데이터를 고려하십시오. 모든 직원의 전체 세부 정보를 얻기 위해 아래와 같이 SET 문을 사용하여 두 데이터 세트를 연결합니다.

DATA ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
1 Rick 623.3 
3 Mike 611.5 
6 Tusar 578.6 
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT NON_ITDEPT; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

시나리오

연결을위한 데이터 세트에 많은 변형이있는 경우 변수의 결과는 다를 수 있지만 연결된 데이터 세트의 총 관측 값 수는 항상 각 데이터 세트의 관측치 합계입니다. 이 변형에 대한 많은 시나리오를 아래에서 고려할 것입니다.

다른 수의 변수

원래 데이터 세트 중 하나에 더 많은 수의 변수가있는 경우 데이터 세트는 여전히 결합되지만 더 작은 데이터 세트에서는 해당 변수가 누락 된 것으로 나타납니다.

아래 예에서 첫 번째 데이터 세트에는 DOJ라는 추가 변수가 있습니다. 결과에서 두 번째 데이터 세트의 DOJ 값이 누락 된 것으로 나타납니다.

DATA ITDEPT; 
   INPUT empid name $ salary DOJ date9.  ; 
DATALINES; 
1 Rick 623.3 02APR2001
3 Mike 611.5 21OCT2000
6 Tusar 578.6 01MAR2009  
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid name $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT NON_ITDEPT; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

다른 변수 이름

이 시나리오에서 데이터 세트에는 동일한 수의 변수가 있지만 변수 이름은 변수간에 다릅니다. 이 경우 정상적인 연결은 결과 집합의 모든 변수를 생성하고 다른 두 변수에 대해 누락 된 결과를 제공합니다. 원래 데이터 세트의 변수 이름을 변경할 수는 없지만 생성 한 연결된 데이터 세트에 RENAME 함수를 적용 할 수 있습니다. 이는 일반 연결과 동일한 결과를 생성하지만 물론 원래 데이터 세트에있는 두 개의 다른 변수 이름 대신 하나의 새 변수 이름을 사용합니다.

아래 예제 데이터 세트에서 ITDEPT에는 변수 이름이 있습니다. ename 반면 데이터 세트는 NON_ITDEPT 변수 이름이 있습니다. empname.그러나이 두 변수는 모두 동일한 유형 (문자)을 나타냅니다. 우리는RENAME 아래와 같이 SET 문에서 함수를 사용합니다.

DATA ITDEPT; 
   INPUT empid ename $ salary  ; 
DATALINES; 
1 Rick 623.3 
3 Mike 611.5 
6 Tusar 578.6 
; 
RUN; 
DATA NON_ITDEPT; 
   INPUT empid empname $ salary  ; 
DATALINES; 
2 Dan 515.2 
4 Ryan 729.1 
5 Gary 843.25 
7 Pranab 632.8 
8 Rasmi 722.5 
RUN; 
DATA All_Dept; 
   SET ITDEPT(RENAME =(ename = Employee) ) NON_ITDEPT(RENAME =(empname = Employee) ); 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

다양한 가변 길이

두 데이터 세트의 변수 길이가 연결된 데이터 세트와 다르면 길이가 더 작은 변수에 대해 일부 데이터가 잘리는 값이 있습니다. 첫 번째 데이터 세트의 길이가 더 작은 경우 발생합니다. 이를 해결하기 위해 아래와 같이 두 데이터 세트에 더 높은 길이를 적용합니다.

아래 예에서 변수 ename첫 번째 데이터 세트의 길이는 5이고 두 번째 데이터 세트의 길이는 7입니다. 연결할 때 연결된 데이터 세트에 LENGTH 문을 적용하여 ename 길이를 7로 설정합니다.

DATA ITDEPT; 
   INPUT  empid 1-2 ename $ 3-7 salary 8-14  ; 
DATALINES; 
1 Rick  623.3 
3 Mike  611.5 
6 Tusar 578.6 
; 
RUN;
DATA NON_ITDEPT; 
   INPUT  empid 1-2 ename $ 3-9 salary 10-16 ; DATALINES; 2 Dan 515.2 4 Ryan 729.1 5 Gary 843.25 7 Pranab 632.8 8 Rasmi 722.5 RUN; DATA All_Dept; LENGTH ename $ 7   ;
   SET ITDEPT  NON_ITDEPT ; 
RUN; 
PROC PRINT DATA = All_Dept; 
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

특정 공통 변수를 기반으로 여러 SAS 데이터 세트를 병합하여 단일 데이터 세트를 제공 할 수 있습니다. 이것은MERGE 진술 및 BY성명서. 병합 된 데이터 세트의 총 관측치 수는 종종 원래 데이터 세트의 관측치 수 합계보다 적습니다. 공통 변수의 값에 일치하는 항목이있을 때 두 데이터 세트의 변수가 하나의 레코드로 병합되기 때문입니다.

아래에 주어진 데이터 세트를 병합하기위한 두 가지 전제 조건이 있습니다.

  • 입력 데이터 세트에는 병합 할 공통 변수가 하나 이상 있어야합니다.
  • 입력 데이터 세트는 병합에 사용될 공통 변수별로 정렬되어야합니다.

통사론

SAS의 MERGE 및 BY 문에 대한 기본 구문은 다음과 같습니다.

MERGE Data-Set 1 Data-Set 2
BY Common Variable

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Data-set1,Data-set2 차례로 쓰여지는 데이터 세트 이름입니다.

  • Common Variable 데이터 세트가 병합 될 일치 값을 기반으로하는 변수입니다.

데이터 병합

예제를 통해 데이터 병합을 이해하겠습니다.

이름과 급여가있는 직원 ID가 포함 된 두 개의 SAS 데이터 세트와 직원 ID 및 부서가있는 직원 ID가 포함 된 다른 두 개의 SAS 데이터 세트를 고려하십시오. 이 경우 각 직원에 대한 완전한 정보를 얻기 위해이 두 데이터 세트를 병합 할 수 있습니다. 최종 데이터 세트에는 여전히 직원당 하나의 관측치가 있지만 급여 및 부서 변수가 모두 포함됩니다.

# Data set 1	
ID NAME SALARY	
1 Rick 623.3		 
2 Dan 515.2 		
3 Mike 611.5 		
4 Ryan 729.1 
5 Gary 843.25 
6 Tusar 578.6 
7 Pranab 632.8 
8 Rasmi 722.5 

# Data set 2
ID DEPT
1 IT 
2 OPS
3 IT 
4 HR 
5 FIN 
6 IT 
7 OPS
8 FIN 

# Merged data set
ID NAME SALARY DEPT	
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN

위의 결과는 BY 문에서 공통 변수 (ID)를 사용하는 다음 코드를 사용하여 얻을 수 있습니다. 두 데이터 세트의 관찰은 이미 ID 열에 정렬되어 있습니다.

DATA SALARY; 
   INPUT empid name $ salary ; DATALINES; 1 Rick 623.3 2 Dan 515.2 3 Mike 611.5 4 Ryan 729.1 5 Gary 843.25 6 Tusar 578.6 7 Pranab 632.8 8 Rasmi 722.5 ; RUN; DATA DEPT; INPUT empid dEPT $ ; 
DATALINES; 
1 IT 
2 OPS
3 IT 
4 HR 
5 FIN 
6 IT 
7 OPS
8 FIN 
;
RUN; 
DATA All_details;
MERGE SALARY DEPT;
BY (empid);
RUN;
PROC PRINT DATA = All_details; 
RUN;

일치하는 열의 누락 된 값

공통 변수의 일부 값이 데이터 세트간에 일치하지 않는 경우가있을 수 있습니다. 이러한 경우 데이터 세트는 여전히 병합되지만 결과에 누락 된 값을 제공합니다.

ID NAME SALARY DEPT	
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 .		.		IT
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   .
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN

일치 항목 만 병합

결과에서 누락 된 값을 피하기 위해 공통 변수에 대해 일치하는 값이있는 관측 값 만 유지하는 것을 고려할 수 있습니다. 이는IN성명서. SAS 프로그램의 병합 문을 변경해야합니다.

아래 예에서 IN= 값은 두 데이터 세트의 값이있는 관측 값 만 유지합니다. SALARYDEPT 시합.

DATA All_details;
MERGE SALARY(IN = a) DEPT(IN = b);
BY (empid);
IF a = 1 and b = 1;
RUN;
PROC PRINT DATA = All_details; 
RUN;

위의 변경된 부분으로 위의 SAS 프로그램을 실행하면 다음과 같은 출력이 나타납니다.

1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN

SAS 데이터 세트를 부분 화한다는 것은 더 적은 수의 변수 나 더 적은 수의 관측치 또는 둘 다를 선택하여 데이터 세트의 일부를 추출하는 것을 의미합니다. 변수의 부분 집합은 사용하여 수행되는 동안KEEPDROP 성명서, 관찰의 하위 설정은 DELETE 성명서.

또한 부분 집합 화 작업의 결과 데이터는 추가 분석에 사용할 수있는 새 데이터 세트에 보관됩니다. 하위 설정은 주로 분석과 관련이 없을 수있는 변수 나 관측치를 사용하지 않고 데이터 집합의 일부를 분석 할 목적으로 사용됩니다.

변수 부분 설정

이 방법에서는 전체 데이터 세트에서 소수의 변수 만 추출합니다.

통사론

SAS의 하위 설정 변수에 대한 기본 구문은 다음과 같습니다.

KEEP var1 var2 ... ;
DROP var1 var2 ... ;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • var1 and var2 유지하거나 삭제해야하는 데이터 세트의 변수 이름입니다.

조직의 직원 세부 정보가 포함 된 아래 SAS 데이터 세트를 고려하십시오. 데이터 세트에서 이름 및 부서 값을 가져 오는 데만 관심이 있다면 아래 코드를 사용할 수 있습니다.

DATA Employee; 
   INPUT empid ename $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3 	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;
DATA OnlyDept;
   SET Employee;
   KEEP ename DEPT;
   RUN;
   PROC PRINT DATA = OnlyDept; 
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

필요하지 않은 변수를 삭제하여 동일한 결과를 얻을 수 있습니다. 아래 코드는 이것을 보여줍니다.

DATA Employee; 
   INPUT empid ename $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3 	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;
DATA OnlyDept;
   SET Employee;
   DROP empid salary;
   RUN;
   PROC PRINT DATA = OnlyDept; 
RUN;

관찰 부분 집합 화

이 방법에서는 전체 데이터 세트에서 몇 가지 관측 값 만 추출합니다.

통사론

새 데이터 세트에 대해 선택된 관찰을 추적하는 PROC FREQ를 사용합니다.

하위 설정 관찰의 구문은 다음과 같습니다.

IF Var Condition THEN DELETE ;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Var 지정된 조건을 사용하여 관측 값을 삭제할 값을 기반으로하는 변수의 이름입니다.

조직의 직원 세부 정보가 포함 된 아래 SAS 데이터 세트를 고려하십시오. 급여가 700 이상인 직원에 대한 데이터 만 가져 오려면 아래 코드를 사용합니다.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;
DATA OnlyDept;
   SET Employee;
   IF salary < 700 THEN DELETE;
   RUN;
   PROC PRINT DATA = OnlyDept; 
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

때때로 우리는 분석 된 데이터를 이미 데이터 세트에있는 형식과 다른 형식으로 표시하는 것을 선호합니다. 예를 들어 가격 정보가있는 변수에 달러 기호와 소수점 두 자리를 추가하려고합니다. 또는 텍스트 변수를 모두 대문자로 표시 할 수 있습니다. 우리는 사용할 수 있습니다FORMAT 내장 SAS 형식을 적용하고 PROC FORMAT사용자 정의 형식을 적용하는 것입니다. 또한 단일 형식을 여러 변수에 적용 할 수 있습니다.

통사론

내장 SAS 형식을 적용하기위한 기본 구문은 다음과 같습니다.

format variable name format name

다음은 사용 된 매개 변수에 대한 설명입니다.

  • variable name 데이터 세트에서 사용되는 변수 이름입니다.

  • format name 변수에 적용 할 데이터 형식입니다.

조직의 직원 세부 정보가 포함 된 아래 SAS 데이터 세트를 고려해 보겠습니다. 모든 이름을 대문자로 표시하고 싶습니다. 그만큼formatstatement 이를 달성하는 데 사용됩니다.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; 
   format name $upcase9. ;
DATALINES; 
1 Rick 623.3	IT 		 
2 Dan 515.2 	OPS	
3 Mike 611.5 	IT 	
4 Ryan 729.1    HR 
5 Gary 843.25   FIN 
6 Tusar 578.6   IT 
7 Pranab 632.8  OPS
8 Rasmi 722.5   FIN 
;
RUN;
   PROC PRINT DATA = Employee; 
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

PROC FORMAT 사용

우리는 또한 사용할 수 있습니다 PROC FORMAT데이터 형식을 지정합니다. 아래 예에서는 부서 이름을 나타내는 DEPT 변수에 새 값을 할당합니다.

DATA Employee; 
   INPUT empid name $ salary DEPT $ ; DATALINES; 1 Rick 623.3 IT 2 Dan 515.2 OPS 3 Mike 611.5 IT 4 Ryan 729.1 HR 5 Gary 843.25 FIN 6 Tusar 578.6 IT 7 Pranab 632.8 OPS 8 Rasmi 722.5 FIN ; proc format; value $DEP 'IT' = 'Information Technology'
      'OPS'= 'Operations' ;
RUN;
   PROC PRINT DATA = Employee; 
   format name $upcase9. DEPT $DEP.; 
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

SAS는 SAS 프로그램 내에서 SQL 쿼리를 사용하여 대부분의 인기있는 관계형 데이터베이스에 대한 광범위한 지원을 제공합니다. 대부분ANSI SQL구문이 지원됩니다. 절차PROC SQLSQL 문을 처리하는 데 사용됩니다. 이 절차는 SQL 쿼리의 결과를 반환 할뿐만 아니라 SAS 테이블 및 변수를 생성 할 수도 있습니다. 이러한 모든 시나리오의 예가 아래에 설명되어 있습니다.

통사론

SAS에서 PROC SQL을 사용하는 기본 구문은 다음과 같습니다.

PROC SQL;
SELECT Columns
FROM TABLE
WHERE Columns
GROUP BY Columns
;
QUIT;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • SQL 쿼리는 PROC SQL 문 아래에 QUIT 문이 이어집니다.

아래에서이 SAS 절차를 사용하여 CRUD (생성, 읽기, 업데이트 및 삭제) SQL에서 작업.

SQL 생성 작업

SQL을 사용하여 원시 데이터에서 새로운 데이터 세트를 만들 수 있습니다. 아래 예에서는 먼저 원시 데이터를 포함하는 TEMP라는 데이터 세트를 선언합니다. 그런 다음이 데이터 세트의 변수에서 테이블을 생성하는 SQL 쿼리를 작성합니다.

DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;

PROC SQL;
CREATE TABLE EMPLOYEES AS
SELECT * FROM TEMP;
QUIT;

PROC PRINT data = EMPLOYEES;
RUN;

위 코드가 실행되면 다음과 같은 결과를 얻습니다.

SQL 읽기 작업

SQL의 읽기 작업에는 테이블에서 데이터를 읽기위한 SQL SELECT 쿼리 작성이 포함됩니다. 아래 프로그램에서 SASHELP 라이브러리에서 사용 가능한 CARS라는 SAS 데이터 세트를 쿼리합니다. 쿼리는 데이터 세트의 일부 열을 가져옵니다.

PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM 
SASHELP.CARS
;
QUIT;

위 코드가 실행되면 다음과 같은 결과를 얻습니다.

WHERE 절이있는 SQL SELECT

아래 프로그램은 CARS 데이터 세트를 where절. 결과적으로 우리는 'Audi'로 만들고 'Sports'로 입력 한 관찰 만 얻습니다.

PROC SQL;
SELECT make,model,type,invoice,horsepower
FROM 
SASHELP.CARS
Where make = 'Audi'
and Type = 'Sports'
;
QUIT;

위 코드가 실행되면 다음과 같은 결과를 얻습니다.

SQL UPDATE 작업

SQL Update 문을 사용하여 SAS 테이블을 업데이트 할 수 있습니다. 아래에서 먼저 EMPLOYEES2라는 새 테이블을 만든 다음 SQL UPDATE 문을 사용하여 업데이트합니다.

DATA TEMP;
INPUT ID $ NAME $ SALARY DEPARTMENT $;
DATALINES;
1 Rick 623.3 IT
2 Dan 515.2 Operations
3 Michelle 611 IT
4 Ryan 729 HR
5 Gary 843.25 Finance
6 Nina 578 IT
7 Simon 632.8 Operations
8 Guru 722.5 Finance
;
RUN;

PROC SQL;
CREATE TABLE EMPLOYEES2 AS
SELECT ID as EMPID,
Name as EMPNAME ,
SALARY as SALARY,
DEPARTMENT as DEPT,
SALARY*0.23 as COMMISION
FROM TEMP;
QUIT;

PROC SQL;
UPDATE EMPLOYEES2
      SET SALARY = SALARY*1.25;
   QUIT;
      PROC PRINT data = EMPLOYEES2;
RUN;

위 코드가 실행되면 다음과 같은 결과를 얻습니다.

SQL DELETE 작업

SQL의 삭제 작업에는 SQL DELETE 문을 사용하여 테이블에서 특정 값을 제거하는 작업이 포함됩니다. 위 예제의 데이터를 계속 사용하고 직원의 급여가 900보다 큰 테이블에서 행을 삭제합니다.

PROC SQL;
DELETE FROM EMPLOYEES2
      WHERE SALARY > 900;
QUIT;
      PROC PRINT data = EMPLOYEES2;
RUN;

위 코드가 실행되면 다음과 같은 결과를 얻습니다.

SAS 프로그램의 출력은 다음과 같이보다 사용자 친화적 인 형식으로 변환 할 수 있습니다. .html 또는 PDF. 이것은 ODSSAS에서 사용할 수있는 성명. ODS는output delivery system.주로보고 이해하기 좋은 멋진 보고서로 SAS 프로그램의 출력 데이터를 형식화하는 데 사용됩니다. 또한 다른 플랫폼 및 소프트웨어와 출력을 공유하는 데 도움이됩니다. 또한 하나의 파일에 여러 PROC 문의 결과를 결합 할 수도 있습니다.

통사론

SAS에서 ODS 문을 사용하기위한 기본 구문은 다음과 같습니다.

ODS outputtype
PATH path name
FILE = Filename and Path
STYLE = StyleName
;
PROC some proc
;
ODS outputtype CLOSE;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • PATHHTML 출력의 경우 사용되는 문을 나타냅니다. 다른 유형의 출력에서는 파일 이름에 경로를 포함합니다.

  • Style SAS 환경에서 사용할 수있는 내장 스타일 중 하나를 나타냅니다.

HTML 출력 생성

ODS HTML 문을 사용하여 HTML 출력을 생성합니다. 아래 예제에서는 원하는 경로에 html 파일을 생성합니다. 스타일 라이브러리에서 사용할 수있는 스타일을 적용합니다. 언급 된 경로에서 출력 파일을 볼 수 있으며 SAS 환경과 다른 환경에 저장하기 위해 다운로드 할 수 있습니다. 두 개의 proc SQL 문이 있으며 두 출력 모두 단일 파일로 캡처됩니다.

ODS HTML 
   PATH = '/folders/myfolders/sasuser.v94/TutorialsPoint/'
   FILE = 'CARS2.html'
   STYLE = EGDefault;
proc SQL;
select make, model, invoice 
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;

proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;

ODS HTML CLOSE;

위 코드가 실행되면 다음과 같은 결과를 얻습니다.

PDF 출력 생성

아래 예에서는 원하는 경로에 PDF 파일을 만듭니다. 스타일 라이브러리에서 사용할 수있는 스타일을 적용합니다. 언급 된 경로에서 출력 파일을 볼 수 있으며 SAS 환경과 다른 환경에 저장하기 위해 다운로드 할 수 있습니다. 두 개의 proc SQL 문이 있으며 두 출력 모두 단일 파일로 캡처됩니다.

ODS PDF 
   FILE = '/folders/myfolders/sasuser.v94/TutorialsPoint/CARS2.pdf'
   STYLE = EGDefault;
proc SQL;
select make, model, invoice 
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;

proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;

ODS PDF CLOSE;

위 코드가 실행되면 다음과 같은 결과를 얻습니다.

TRF (Word) 출력 생성

아래 예에서는 원하는 경로에 RTF 파일을 만듭니다. 스타일 라이브러리에서 사용할 수있는 스타일을 적용합니다. 언급 된 경로에서 출력 파일을 볼 수 있으며 SAS 환경과 다른 환경에 저장하기 위해 다운로드 할 수 있습니다. 두 개의 proc SQL 문이 있으며 두 출력 모두 단일 파일로 캡처됩니다.

ODS RTF 
FILE = '/folders/myfolders/sasuser.v94/TutorialsPoint/CARS.rtf'
STYLE = EGDefault;
proc SQL;
select make, model, invoice 
from sashelp.cars
where make in ('Audi','BMW')
and type = 'Sports'
;
quit;

proc SQL;
select make,mean(horsepower)as meanhp
from sashelp.cars
where make in ('Audi','BMW')
group by make;
quit;

ODS rtf CLOSE;

위 코드가 실행되면 다음과 같은 결과를 얻습니다.

시뮬레이션은 통계적 수량을 추정하기 위해 다양한 무작위 샘플에서 반복 계산을 사용하는 계산 기술입니다. SAS를 사용하여 실제 시스템에서 통계 속성을 지정한 복잡한 데이터를 시뮬레이션 할 수 있습니다. 우리는 소프트웨어를 사용하여 시스템 모델을 구축하고 실제 시스템의 동작을 더 잘 이해하는 데 사용할 수있는 데이터를 수치 적으로 생성합니다. 컴퓨터 시뮬레이션 모델을 설계하는 기술의 일부는 모델에 의해 생성 된 데이터를 사용하여 효과적인 결정을 내릴 수 있도록 모델에 포함해야하는 실제 시스템의 측면을 결정하는 것입니다. 이러한 복잡성으로 인해 SAS에는 Simulation 전용 소프트웨어 구성 요소가 있습니다.

SAS 시뮬레이션 생성에 사용되는 SAS 소프트웨어 구성 요소를 SAS Simulation Studio. 그래픽 사용자 인터페이스는 개별 이벤트 시뮬레이션 모델의 결과를 구축, 실행 및 분석하기위한 전체 도구 세트를 제공합니다.

SAS 시뮬레이션을 적용 할 수있는 다양한 유형의 통계 분포는 다음과 같습니다.

  • 지속적인 배포에서 데이터 시뮬레이션
  • 개별 배포에서 데이터 시뮬레이션
  • 혼합 배포판에서 데이터 시뮬레이션
  • 복잡한 배포에서 데이터 시뮬레이션
  • 다양한 배포에서 데이터 시뮬레이션
  • 샘플링 분포에 근접
  • 회귀 추정치 평가

히스토그램은 높이가 다른 막대를 사용하여 데이터를 그래픽으로 표시 한 것입니다. 데이터 세트의 다양한 숫자를 여러 범위로 그룹화합니다. 또한 연속 변수의 분포 확률 추정치를 나타냅니다. SAS에서PROC UNIVARIATE 아래 옵션으로 히스토그램을 생성하는 데 사용됩니다.

통사론

SAS에서 히스토그램을 생성하는 기본 구문은 다음과 같습니다.

PROC UNIVARAITE DATA = DATASET;
HISTOGRAM variables;
RUN;
  • DATASET 사용 된 데이터 세트의 이름입니다.

  • variables 히스토그램을 그리는 데 사용되는 값입니다.

단순 히스토그램

값을 그룹화하는 데 고려할 변수 이름과 범위를 지정하여 간단한 히스토그램을 만듭니다.

아래 예에서는 가변 마력의 최소값과 최대 값을 고려하고 범위를 50으로 설정합니다. 따라서 값은 50 단계로 그룹을 형성합니다.

proc univariate data = sashelp.cars;
   histogram horsepower
   / midpoints = 176 to 350 by 50;
run;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

곡선 피팅이있는 히스토그램

추가 옵션을 사용하여 일부 분포 곡선을 히스토그램에 맞출 수 있습니다.

아래 예에서는 EST로 언급 된 평균 및 표준 편차 값을 사용하여 분포 곡선을 맞 춥니 다. 이 옵션은 매개 변수를 사용하고 추정합니다.

proc univariate data = sashelp.cars noprint;
histogram horsepower
/ 
normal ( 
   mu = est
   sigma = est
   color = blue
   w = 2.5 
)
barlabel = percent
midpoints = 70 to 550 by 50;
run;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

막대 차트는 변수 값에 비례하는 막대 길이로 직사각형 막대로 데이터를 나타냅니다. SAS는 절차를 사용합니다.PROC SGPLOT막대 차트를 만듭니다. 막대 차트에서 단순 막대와 누적 막대를 모두 그릴 수 있습니다. 막대 차트에서는 각 막대에 서로 다른 색상을 지정할 수 있습니다.

통사론

SAS에서 막대 차트를 만드는 기본 구문은 다음과 같습니다.

PROC SGPLOT DATA = DATASET;
VBAR variables;
RUN;
  • DATASET − 사용 된 데이터 세트의 이름입니다.

  • variables − 히스토그램을 그리는 데 사용되는 값입니다.

단순 막대 차트

단순 막대 차트는 데이터 세트의 변수가 막대로 표시되는 막대 차트입니다.

아래 스크립트는 자동차 길이를 막대로 나타내는 막대 차트를 만듭니다.

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc SGPLOT data = work.cars1;
vbar length ;
title 'Lengths of cars';
run;
quit;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

누적 막대 차트

누적 막대 차트는 데이터 집합의 변수가 다른 변수와 관련하여 계산되는 막대 차트입니다.

아래 스크립트는 각 자동차 유형에 대해 자동차 길이가 계산되는 누적 막대 차트를 만듭니다. 그룹 옵션을 사용하여 두 번째 변수를 지정합니다.

proc SGPLOT data = work.cars1;
vbar length /group = type ;
title 'Lengths of Cars by Types';
run;
quit;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

군집 막대 차트

클러스터형 막대 차트는 변수 값이 문화 전반에 분산되는 방식을 보여주기 위해 생성됩니다.

아래 스크립트는 자동차의 길이가 자동차 유형을 중심으로 클러스터링 된 클러스터형 막대 차트를 생성하므로 길이 191에 인접한 두 개의 막대가 있는데, 하나는 자동차 유형 'Sedan'이고 다른 하나는 'Wagon'입니다. .

proc SGPLOT data = work.cars1;
vbar length /group = type GROUPDISPLAY = CLUSTER;
title 'Cluster of Cars by Types';
run;
quit;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

원형 차트는 값을 다른 색상의 원 조각으로 표현한 것입니다. 조각에는 레이블이 지정되고 각 조각에 해당하는 숫자도 차트에 표시됩니다.

SAS에서 원형 차트는 다음을 사용하여 생성됩니다. PROC TEMPLATE 백분율, 레이블, 색상, 제목 등을 제어하는 ​​매개 변수를 사용합니다.

통사론

SAS에서 원형 차트를 만드는 기본 구문은 다음과 같습니다.

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = variable /
            DATALABELLOCATION = OUTSIDE
            CATEGORYDIRECTION = CLOCKWISE
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = ' ';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
  • variable 원형 차트를 만드는 값입니다.

간단한 원형 차트

이 원형 차트에서는 데이터 세트에서 단일 변수를 사용합니다. 원형 차트는 변수의 총 값에 대한 변수 개수의 비율을 나타내는 조각 값으로 생성됩니다.

아래 예에서 각 슬라이스는 총 자동차 수에서 자동차 유형의 비율을 나타냅니다.

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
 FROM 
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type /
            DATALABELLOCATION = OUTSIDE
            CATEGORYDIRECTION = CLOCKWISE
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

데이터 레이블이있는 원형 차트

이 원형 차트에서는 각 조각의 비율 값과 분수 값을 모두 나타냅니다. 또한 레이블의 위치를 ​​차트 내부로 변경합니다. 차트의 모양 스타일은 DATASKIN 옵션을 사용하여 수정됩니다. SAS 환경에서 사용할 수있는 내장 스타일 중 하나를 사용합니다.

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type /
            DATALABELLOCATION = INSIDE
            DATALABELCONTENT = ALL
            CATEGORYDIRECTION = CLOCKWISE
            DATASKIN = SHEEN 
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

그룹화 된 원형 차트

이 원형 차트에서 그래프에 표시된 변수의 값은 동일한 데이터 세트의 다른 변수와 관련하여 그룹화됩니다. 각 그룹은 하나의 원이되고 차트에는 사용 가능한 그룹 수만큼 동심원이 있습니다.

아래 예에서는 "Make"라는 변수를 기준으로 차트를 그룹화합니다. 사용 가능한 두 가지 값 ( "Audi"및 "BMW")이 있으므로 자체 제작에서 자동차 유형의 조각을 각각 나타내는 두 개의 동심원을 얻습니다.

PROC TEMPLATE;
   DEFINE STATGRAPH pie;
      BEGINGRAPH;
         LAYOUT REGION;
            PIECHART CATEGORY = type / Group = make
            DATALABELLOCATION = INSIDE
            DATALABELCONTENT = ALL
            CATEGORYDIRECTION = CLOCKWISE
            DATASKIN = SHEEN 
            START = 180 NAME = 'pie';
            DISCRETELEGEND 'pie' /
            TITLE = 'Car Types';
         ENDLAYOUT;
      ENDGRAPH;
   END;
RUN;
PROC SGRENDER DATA = cars1
            TEMPLATE = pie;
RUN;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

산점도는 데카르트 평면에 그려진 두 변수의 값을 사용하는 그래프 유형입니다. 일반적으로 두 변수 간의 관계를 찾는 데 사용됩니다. SAS에서는PROC SGSCATTER 산점도를 만듭니다.

첫 번째 예에서 CARS1이라는 데이터 세트를 생성하고 모든 후속 데이터 세트에 대해 동일한 데이터 세트를 사용합니다. 이 데이터 세트는 SAS 세션이 끝날 때까지 작업 라이브러리에 남아 있습니다.

통사론

SAS에서 산점도를 생성하는 기본 구문은 다음과 같습니다.

PROC sgscatter  DATA = DATASET;
   PLOT VARIABLE_1 * VARIABLE_2
   / datalabel = VARIABLE group = VARIABLE;
RUN;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • DATASET 데이터 세트의 이름입니다.

  • VARIABLE 데이터 세트에서 사용 된 변수입니다.

단순 산점도

간단한 산점도에서 데이터 세트에서 두 개의 변수를 선택하고 세 번째 변수를 기준으로 그룹화합니다. 데이터에 레이블을 지정할 수도 있습니다. 결과는 두 변수가Cartesian plane.

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
FROM 
SASHELP.CARS
WHERE make in ('Audi','BMW')
;
RUN;

TITLE 'Scatterplot - Two Variables';
PROC sgscatter  DATA = CARS1;
   PLOT horsepower*Invoice 
   / datalabel = make group = type grid;
   title 'Horsepower vs. Invoice for car makers by types';
RUN;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

예측이있는 산점도

추정 매개 변수를 사용하여 값 주위에 타원을 그려서 상관 관계의 강도를 예측할 수 있습니다. 절차에서 추가 옵션을 사용하여 아래와 같이 타원을 그립니다.

proc sgscatter data = cars1; 
compare y = Invoice  x = (horsepower length)  
         / group = type  ellipse =(alpha = 0.05 type = predicted); 
title
'Average Invoice vs. horsepower for cars by length'; 
title2
'-- with 95% prediction ellipse --'
; 
format
Invoice dollar6.0;
run;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

산포 행렬

두 개 이상의 변수를 쌍으로 그룹화하여 산점도를 포함 할 수도 있습니다. 아래 예에서는 세 가지 변수를 고려하고 산점도 행렬을 그립니다. 3 쌍의 결과 행렬을 얻습니다.

PROC sgscatter  DATA = CARS1;
   matrix horsepower invoice length
   / group = type;

   title 'Horsepower vs. Invoice vs. Length for car makers by types';
RUN;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

상자 그림은 사 분위수를 통해 숫자 데이터 그룹을 그래픽으로 표현한 것입니다. 상자 그림에는 상한 및 하한 사 분위수 외부의 변동성을 나타내는 상자 (수염)에서 수직으로 확장되는 선이있을 수도 있습니다. 상자의 아래쪽과 위쪽은 항상 1 사분 위와 3 분위수이고 상자 내부의 밴드는 항상 2 사 분위 (중앙값)입니다. SAS에서 간단한 Boxplot은 다음을 사용하여 생성됩니다.PROC SGPLOT 패널 상자 그림은 다음을 사용하여 생성됩니다. PROC SGPANEL.

첫 번째 예에서 CARS1이라는 데이터 세트를 생성하고 모든 후속 데이터 세트에 대해 동일한 데이터 세트를 사용합니다. 이 데이터 세트는 SAS 세션이 끝날 때까지 작업 라이브러리에 남아 있습니다.

통사론

SAS에서 상자 그림을 만드는 기본 구문은 다음과 같습니다.

PROC SGPLOT  DATA = DATASET;
   VBOX VARIABLE / category = VARIABLE;
RUN; 

PROC SGPANEL  DATA = DATASET;;
PANELBY VARIABLE;
   VBOX VARIABLE> / category = VARIABLE;
RUN;
  • DATASET − 사용 된 데이터 세트의 이름입니다.

  • VARIABLE − 상자 그림을 그리는 데 사용되는 값입니다.

단순 상자 그림

간단한 상자 그림에서 데이터 세트에서 하나의 변수를 선택하고 범주를 형성하기 위해 다른 변수를 선택합니다. 첫 번째 변수의 값은 두 번째 변수의 고유 값 수만큼 그룹 수로 분류됩니다.

아래 예에서는 변수 마력을 첫 번째 변수로 선택하고 범주 변수로 입력합니다. 따라서 우리는 각 유형의 자동차에 대한 마력 값 분포에 대한 상자 그림을 얻습니다.

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

PROC SGPLOT  DATA = CARS1;
   VBOX horsepower 
   / category = type;

   title 'Horsepower of cars by types';
RUN;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

수직 패널의 상자 그림

변수의 상자 그림을 여러 수직 패널 (열)로 나눌 수 있습니다. 각 패널에는 모든 범주 형 변수에 대한 상자 그림이 있습니다. 그러나 상자 그림은 그래프를 여러 패널로 나누는 또 다른 세 번째 변수를 사용하여 추가로 그룹화됩니다.

아래 예에서는 'make'변수를 사용하여 그래프를 패널화했습니다. 'make'에는 두 가지 고유 한 값이 있으므로 두 개의 수직 패널을 얻습니다.

PROC SGPANEL  DATA = CARS1;
PANELBY MAKE;
   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

수평 패널의 상자 그림

변수의 상자 그림을 여러 수평 패널 (행)로 나눌 수 있습니다. 각 패널에는 모든 범주 형 변수에 대한 상자 그림이 있습니다. 그러나 상자 그림은 그래프를 여러 패널로 나누는 또 다른 세 번째 변수를 사용하여 추가로 그룹화됩니다. 아래 예에서는 'make'변수를 사용하여 그래프를 패널화했습니다. 'make'에는 두 가지 고유 한 값이 있으므로 두 개의 수평 패널을 얻습니다.

PROC SGPANEL  DATA = CARS1;
PANELBY MAKE / columns = 1 novarname;

   VBOX horsepower   / category = type;

   title 'Horsepower of cars by types';
RUN;

위의 코드를 실행하면 다음과 같은 결과가 나옵니다.

산술 평균은 숫자 변수의 값을 더한 다음 그 합계를 변수 수로 나눈 값입니다. 평균이라고도합니다. SAS에서 산술 평균은 다음을 사용하여 계산됩니다.PROC MEANS. 이 SAS 프로 시저를 사용하여 데이터 세트의 모든 변수 또는 일부 변수의 평균을 찾을 수 있습니다. 또한 그룹을 형성하고 해당 그룹에 특정한 값의 변수 평균을 찾을 수 있습니다.

통사론

SAS에서 산술 평균을 계산하는 기본 구문은 다음과 같습니다.

PROC MEANS DATA = DATASET;
CLASS Variables ;
VAR Variables;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • DATASET − 사용 된 데이터 세트의 이름입니다.

  • Variables − 데이터 세트의 변수 이름입니다.

데이터 세트의 평균

데이터 세트에있는 각 숫자 변수의 평균은 변수없이 데이터 세트 이름 만 제공하여 PROC를 사용하여 계산됩니다.

아래 예에서는 CARS라는 SAS 데이터 세트에있는 모든 숫자 변수의 평균을 찾습니다. 소수점 이하 자릿수를 2로 지정하고 이러한 변수의 합계도 찾습니다.

PROC MEANS DATA = sashelp.CARS Mean SUM MAXDEC=2;
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

선택 변수의 평균

우리는 변수의 이름을 var 선택권.

아래에서 세 변수의 평균을 계산합니다.

PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC=2 ;
var horsepower invoice EngineSize;
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

등급별 평균

다른 변수를 사용하여 그룹으로 구성하여 숫자 변수의 평균을 찾을 수 있습니다.

아래의 예에서 우리는 자동차의 각 제조사에서 각 유형에 대한 가변 마력의 평균을 찾습니다.

PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC=2;
class make type;
var horsepower;
RUN;

위의 코드가 실행되면 다음과 같은 결과가 나옵니다.

표준 편차 (SD)는 데이터 세트의 데이터가 얼마나 다양한지를 측정 한 것입니다. 수학적으로 각 값이 데이터 세트의 평균 값과 얼마나 멀리 떨어져 있는지 측정합니다. 0에 가까운 표준 편차 값은 데이터 포인트가 데이터 세트의 평균에 매우 가까운 경향이 있음을 나타내고 높은 표준 편차는 데이터 포인트가 더 넓은 범위의 값에 분산되어 있음을 나타냅니다.

SAS에서 SD 값은 PROC MEAN과 PROC SURVEYMEANS를 사용하여 측정됩니다.

PROC MEANS 사용

SD를 사용하여 측정하려면 proc meansPROC 단계에서 STD 옵션을 선택합니다. 데이터 세트에있는 각 숫자 변수에 대한 SD 값을 가져옵니다.

통사론

SAS에서 표준 편차를 계산하는 기본 구문은 다음과 같습니다.

PROC means DATA = dataset STD;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Dataset − 데이터 세트의 이름입니다.

아래 예에서는 SASHELP 라이브러리의 CARS 데이터 세트에서 데이터 세트 CARS1을 생성합니다. PROC 수단 단계와 함께 STD 옵션을 선택합니다.

PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc means data = CARS1 STD;
run;

위 코드를 실행하면 다음과 같은 결과가 나옵니다.

PROC SURVEYMEANS 사용

이 절차는 또한 범주 형 변수에 대한 SD 측정과 같은 일부 고급 기능과 함께 SD 측정에 사용되며 분산 추정치를 제공합니다.

통사론

PROC SURVEYMEANS를 사용하는 구문은 다음과 같습니다.

PROC SURVEYMEANS options statistic-keywords ;
BY variables ;
CLASS variables ;
VAR variables ;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • BY − 관측 그룹을 생성하는 데 사용되는 변수를 나타냅니다.

  • CLASS − 범주 형 변수에 사용되는 변수를 나타냅니다.

  • VAR − SD를 계산할 변수를 나타냅니다.

아래 예제는 class 클래스 변수의 각 값에 대한 통계를 생성하는 옵션.

proc surveymeans data = CARS1 STD;
class type;
var type horsepower;
ods output statistics = rectangle;
run;
proc print data = rectangle;
run;

위 코드를 실행하면 다음과 같은 결과가 나옵니다.

BY 옵션 사용

아래 코드는 BY 옵션의 예입니다. 결과는 BY 옵션의 각 값에 대해 그룹화됩니다.

proc surveymeans data = CARS1 STD;
var horsepower;
BY make;
ods output statistics = rectangle;
run;
proc print data = rectangle;
run;

위 코드를 실행하면 다음과 같은 결과가 나옵니다.

make = "Audi"에 대한 결과

make = "BMW"에 대한 결과

빈도 분포는 데이터 세트에서 데이터 포인트의 빈도를 보여주는 표입니다. 테이블의 각 항목에는 특정 그룹 또는 간격 내에서 값의 발생 빈도 또는 개수가 포함되며 이러한 방식으로 테이블은 샘플의 값 분포를 요약합니다.

SAS는 PROC FREQ 데이터 세트에서 데이터 포인트의 빈도 분포를 계산합니다.

통사론

SAS에서 주파수 분포를 계산하는 기본 구문은 다음과 같습니다.

PROC FREQ DATA = Dataset ;
TABLES Variable_1 ;
BY Variable_2 ;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Dataset 데이터 세트의 이름입니다.

  • Variables_1 빈도 분포를 계산해야하는 데이터 세트의 변수 이름입니다.

  • Variables_2 도수 분포 결과를 분류 한 변수입니다.

단일 가변 주파수 분포

다음을 사용하여 단일 변수의 빈도 분포를 결정할 수 있습니다. PROC FREQ.이 경우 결과는 각 변수 값의 빈도를 표시합니다. 결과에는 백분율 분포, 누적 빈도 및 누적 백분율도 표시됩니다.

아래 예에서 이름이 지정된 데이터 세트에 대한 가변 마력의 주파수 분포를 찾습니다. CARS1 라이브러리에서 생성되는 SASHELP.CARS.결과를 두 가지 범주로 나눈 결과를 볼 수 있습니다. 자동차 제조사마다 하나씩.

PROC SQL;
create table CARS1 as
SELECT make, model, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc FREQ data = CARS1 ;
tables horsepower; 
by make;
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

다중 가변 주파수 분포

가능한 모든 조합으로 그룹화하는 여러 변수에 대한 빈도 분포를 찾을 수 있습니다.

아래 예에서 자동차 제조업체의 빈도 분포를 계산합니다. grouped by car type 또한 각 유형의 자동차의 주파수 분포 grouped by each make.

proc FREQ data = CARS1 ;
tables make type; 
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

가중치가있는 주파수 분포

가중치 옵션을 사용하면 변수의 가중치로 편향된 빈도 분포를 계산할 수 있습니다. 여기서 변수의 값은 값의 개수 대신 관측 값의 개수로 간주됩니다.

아래 예에서는 마력에 가중치가 할당 된 변수 make 및 type의 빈도 분포를 계산합니다.

proc FREQ data = CARS1 ;
tables make type; 
weight horsepower;
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

교차 표는 두 개 이상의 변수의 가능한 모든 조합을 사용하여 불확정 표라고도하는 교차 표를 생성하는 것을 포함합니다. SAS에서는 다음을 사용하여 생성됩니다.PROC FREQ 와 함께 TABLES선택권. 예를 들어, 각 자동차 유형 카테고리의 각 제조업체에 대한 각 모델의 빈도가 필요한 경우 PROC FREQ의 TABLES 옵션을 사용해야합니다.

통사론

SAS에서 교차 표를 적용하는 기본 구문은 다음과 같습니다.

PROC FREQ DATA = dataset;
TABLES variable_1*Variable_2;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Dataset 데이터 세트의 이름입니다.

  • Variable_1 and Variable_2 빈도 분포를 계산해야하는 데이터 세트의 변수 이름입니다.

생성 된 데이터 셋 cars1에서 각 자동차 브랜드에서 사용할 수있는 자동차 유형 수를 찾는 경우를 고려하십시오. SASHELP.CARS아래 그림과 같이. 이 경우 개별 주파수 값과 제조업체 및 유형 전체에 걸친 주파수 값의 합이 필요합니다. 결과가 행과 열에 걸쳐 값을 표시하는 것을 관찰 할 수 있습니다.

PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc FREQ data = CARS1;
tables make*type; 
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

3 가지 변수의 교차 표

3 개의 변수가있을 때 2 개를 그룹화하고이 2 개를 세 번째 변수와 교차 표로 만들 수 있습니다. 결과적으로 두 개의 교차 테이블이 있습니다.

아래의 예에서 우리는 자동차 제조사와 관련하여 각 유형의 자동차와 각 모델의 빈도를 찾습니다. 또한 합계 및 백분율 값을 피하기 위해 nocol 및 norow 옵션을 사용합니다.

proc FREQ data = CARS2 ;
tables make * (type model)  / nocol norow nopercent;   
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

4 가지 변수의 교차 표

변수가 4 개인 경우 쌍을 이루는 조합의 수가 4 개로 증가합니다. 그룹 1의 각 변수는 그룹 2의 각 변수와 쌍을 이룹니다.

아래 예에서 각 제조사 및 모델에 대한 자동차 길이의 빈도를 찾습니다. 마찬가지로 각 제조업체 및 각 모델의 마력 빈도.

proc FREQ data = CARS2 ;
tables (make model) * (length  horsepower)  / nocol norow nopercent;   
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

T- 검정은 평균과 평균 차이를 비교하여 하나의 표본 또는 두 개의 독립 표본에 대한 신뢰 한계를 계산하기 위해 수행됩니다. 명명 된 SAS 프로 시저PROC TTEST 단일 변수와 변수 쌍에 대해 t 테스트를 수행하는 데 사용됩니다.

통사론

SAS에서 PROC TTEST를 적용하기위한 기본 구문은 다음과 같습니다.

PROC TTEST DATA = dataset;
VAR variable;
CLASS Variable;
PAIRED Variable_1 * Variable_2;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Dataset 데이터 세트의 이름입니다.

  • Variable_1 and Variable_2 t 테스트에 사용 된 데이터 세트의 변수 이름입니다.

아래에서는 95 % 신뢰 한계로 가변 마력에 대한 t 검정 추정치를 찾는 하나의 샘플 t 검정을 볼 수 있습니다.

PROC SQL;
create table CARS1 as
SELECT make, type, invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc ttest data = cars1 alpha = 0.05 h0 = 0;
 	var horsepower;
   run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

쌍 T- 검정

쌍체 T 검정은 두 종속 변수가 통계적으로 서로 다른지 여부를 검정하기 위해 수행됩니다.

자동차의 길이와 무게는 서로에 따라 달라 지므로 아래와 같이 페어링 된 T 테스트를 적용합니다.

proc ttest data = cars1 ;
   paired weight*length;
   run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

두 개의 샘플 t- 검정

이 t- 검정은 두 그룹간에 동일한 변수의 평균을 비교하도록 설계되었습니다.

우리의 경우에는 서로 다른 두 차종 ( "Audi"와 "BMW") 사이의 가변 마력 평균을 비교합니다.

proc ttest data = cars1 sides = 2 alpha = 0.05 h0 = 0;
   title "Two sample t-test example";
   class make; 
   var horsepower;
   run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

상관 분석은 변수 간의 관계를 다룹니다. 상관 계수는 두 변수 간의 선형 연관 측정 값으로, 상관 계수의 값은 항상 -1과 +1 사이입니다. SAS는 절차를 제공합니다PROC CORR 데이터 세트에서 변수 쌍 간의 상관 계수를 찾습니다.

통사론

SAS에서 PROC CORR을 적용하는 기본 구문은 다음과 같습니다.

PROC CORR DATA = dataset options;
VAR variable;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Dataset 데이터 세트의 이름입니다.

  • Options 행렬 플로팅과 같은 절차가있는 추가 옵션입니다.

  • Variable 상관 관계를 찾는 데 사용되는 데이터 세트의 변수 이름입니다.

데이터 셋에서 사용 가능한 한 쌍의 변수 간의 상관 계수는 VAR 문에서 이름을 사용하여 얻을 수 있습니다. 아래 예에서는 데이터 셋 CARS1을 사용하여 마력과 무게 간의 상관 계수를 보여주는 결과를 얻습니다.

PROC SQL;
create table CARS1 as
SELECT invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;

proc corr data = cars1 ;
VAR horsepower weight ;
BY make;
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

모든 변수 간의 상관 관계

데이터 세트 이름과 함께 절차를 적용하면 데이터 세트에서 사용할 수있는 모든 변수 간의 상관 계수를 얻을 수 있습니다.

아래 예에서는 데이터 셋 CARS1을 사용하고 각 변수 쌍 간의 상관 계수를 보여주는 결과를 얻습니다.

proc corr data = cars1 ;
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

상관 행렬

옵션을 선택하여 변수 간의 산점도 행렬을 얻을 수 있습니다. PROC 성명서.

아래 예에서는 마력과 무게 사이의 행렬을 얻습니다.

proc corr data = cars1 plots = matrix ;
VAR horsepower weight ;
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

선형 회귀는 종속 변수와 하나 이상의 독립 변수 간의 관계를 식별하는 데 사용됩니다. 관계의 모델이 제안되고 모수 값의 추정이 추정 된 회귀 방정식을 개발하는 데 사용됩니다.

그런 다음 모델이 만족 스러운지 결정하기 위해 다양한 테스트가 사용됩니다. 그렇다면 추정 된 회귀 방정식을 사용하여 독립 변수에 대한 값이 주어진 종속 변수의 값을 예측할 수 있습니다. SAS에서 절차PROC REG 두 변수 간의 선형 회귀 모델을 찾는 데 사용됩니다.

통사론

SAS에서 PROC REG를 적용하기위한 기본 구문은 다음과 같습니다.

PROC REG DATA = dataset;
MODEL variable_1 = variable_2;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Dataset 데이터 세트의 이름입니다.

  • variable_1 and variable_2 상관 관계를 찾는 데 사용되는 데이터 세트의 변수 이름입니다.

아래 예제는 두 변수의 마력과 자동차 무게 사이의 상관 관계를 찾는 과정을 PROC REG. 결과에서 회귀 방정식을 형성하는 데 사용할 수있는 절편 값을 볼 수 있습니다.

PROC SQL;
create table CARS1 as
SELECT invoice, horsepower, length, weight
   FROM 
   SASHELP.CARS
   WHERE make in ('Audi','BMW')
;
RUN;
proc reg data = cars1;
model horsepower = weight ;
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

위의 코드는 또한 아래와 같이 모델의 다양한 추정치에 대한 그래픽보기를 제공합니다. 고급 SAS 프로 시저이기 때문에 인터셉트 값을 출력으로 제공하는 데 그치지 않습니다.

Bland-Altman 분석은 동일한 매개 변수를 측정하도록 설계된 두 가지 방법 간의 동의 또는 불일치 정도를 확인하는 프로세스입니다. 방법 간의 높은 상관 관계는 데이터 분석에서 충분한 샘플이 선택되었음을 나타냅니다. SAS에서는 변수 값의 평균, 상한 및 하한을 계산하여 Bland-Altman 플롯을 생성합니다. 그런 다음 PROC SGPLOT을 사용하여 Bland-Altman 플롯을 생성합니다.

통사론

SAS에서 PROC SGPLOT을 적용하는 기본 구문은 다음과 같습니다.

PROC SGPLOT DATA = dataset;
SCATTER X = variable Y = Variable;
REFLINE value;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Dataset 데이터 세트의 이름입니다.

  • SCATTER 문은 X 및 Y 형식으로 제공된 값의 산점도 그래프를 나타냅니다.

  • REFLINE 수평 또는 수직 참 조선을 만듭니다.

아래 예제에서는 new와 old라는 두 가지 방법으로 생성 된 두 실험의 결과를 취합니다. 우리는 변수 값의 차이와 동일한 관측 값의 변수 평균을 계산합니다. 또한 계산의 상한 및 하한에 사용할 표준 편차 값을 계산합니다.

결과는 Bland-Altman 플롯을 산점도로 보여줍니다.

data mydata;
input new old;
datalines;
31 45
27 12
11 37
36 25
14 8
27 15
3 11
62 42
38 35
20 9
35 54
62 67
48 25
77 64
45 53
32 42
16 19
15 27
22 9
8 38
24 16
59 25
;

data diffs ;
set mydata ;
/* calculate the difference */
diff = new-old ;
/* calculate the average */
mean = (new+old)/2 ;
run ;
proc print data = diffs;
run;

proc sql noprint ;
select mean(diff)-2*std(diff),  mean(diff)+2*std(diff)
into   :lower,  :upper 
from diffs ;
quit;

proc sgplot data = diffs ;
scatter x = mean y = diff;
refline 0 &upper &lower / LABEL = ("zero bias line" "95% upper limit" "95%
lower limit");
TITLE 'Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error'; 
run ;
quit ;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

향상된 모델

위 프로그램의 향상된 모델에서 95 % 신뢰 수준 곡선 피팅을 얻습니다.

proc sgplot data = diffs ;
reg x = new y = diff/clm clmtransparency = .5;
needle x = new y = diff/baseline = 0;
refline 0 / LABEL = ('No diff line');
TITLE 'Enhanced Bland-Altman Plot';
footnote 'Accurate prediction with 10% homogeneous error'; 
run ;
quit ;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

카이 제곱 검정은 두 범주 형 변수 간의 연관성을 조사하는 데 사용됩니다. 변수 간의 의존성 정도와 독립성 정도를 테스트하는 데 사용할 수 있습니다. SAS는PROC FREQ 옵션과 함께 chisq 카이-제곱 검정의 결과를 결정합니다.

통사론

SAS에서 Chi-Square 테스트를 위해 PROC FREQ를 적용하는 기본 구문은 다음과 같습니다.

PROC FREQ DATA = dataset;
TABLES variables 
/CHISQ TESTP = (percentage values);

다음은 사용 된 매개 변수에 대한 설명입니다.

  • Dataset 데이터 세트의 이름입니다.

  • Variables 카이-제곱 검정에서 사용하는 데이터 세트의 변수 이름입니다.

  • Percentage Values TESTP 문에서 변수 수준의 백분율을 나타냅니다.

아래 예에서는 데이터 세트의 type이라는 변수에 대한 카이 제곱 테스트를 고려합니다. SASHELP.CARS. 이 변수에는 6 개의 수준이 있으며 테스트 설계에 따라 각 수준에 백분율을 할당합니다.

proc freq data = sashelp.cars;
tables type 
/chisq 
testp = (0.20 0.12 0.18 0.10 0.25 0.15);
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

또한 다음 스크린 샷과 같이 변수 유형의 편차를 보여주는 막대 차트를 얻습니다.

양방향 카이 제곱

데이터 세트의 두 변수에 검정을 적용 할 때 양방향 카이-제곱 검정이 사용됩니다.

아래 예제에서는 type과 origin이라는 두 변수에 카이-제곱 테스트를 적용합니다. 결과는이 두 변수의 모든 조합의 표 형식을 보여줍니다.

proc freq data = sashelp.cars;
tables type*origin 
/chisq 
;
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

Fisher의 정확 검정은 두 범주 형 변수간에 비 랜덤 연관성이 있는지 확인하는 데 사용되는 통계 검정입니다. PROC FREQ. Fisher Exact 검정을받는 두 변수를 사용하기 위해 테이블 ​​옵션을 사용합니다.

통사론

SAS에서 Fisher Exact 테스트를 적용하기위한 기본 구문은 다음과 같습니다.

PROC FREQ DATA = dataset ;
TABLES Variable_1*Variable_2 / fisher;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • dataset 데이터 세트의 이름입니다.

  • Variable_1*Variable_2 데이터 세트를 형성하는 변수입니다.

Fisher 정확한 테스트 적용

Fisher의 정확 검정을 적용하기 위해 Test1과 Test2라는 두 개의 범주 형 변수와 그 결과를 선택하고 PROC FREQ를 사용하여 아래 표시된 검정을 적용합니다.

data temp;
input  Test1 Test2 Result @@;
datalines;
1 1 3 1 2 1 2 1 1 2 2 3
;
proc freq; 
tables Test1*Test2 / fisher;
run;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

반복 측정 분석은 무작위 샘플의 모든 구성원이 다양한 조건에서 측정 될 때 사용됩니다. 샘플이 각 조건에 차례로 노출됨에 따라 종속 변수의 측정이 반복됩니다. 이 경우 표준 ANOVA를 사용하는 것은 반복 측정 간의 상관 관계를 모델링하지 못하기 때문에 적절하지 않습니다.

하나의 차이점에 대해 명확해야합니다. repeated measures design 그리고 simple multivariate design. 두 경우 모두 샘플 멤버를 여러 번 측정하거나 시행하지만 반복 측정 설계에서 각 시행은 다른 조건에서 동일한 특성의 측정을 나타냅니다.

SAS에서 PROC GLM 반복 측정 분석을 수행하는 데 사용됩니다.

통사론

SAS에서 PROC GLM의 기본 구문은 다음과 같습니다.

PROC GLM DATA = dataset;
   CLASS variable;
   MODEL variables = group / NOUNI;
   REPEATED TRIAL n;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • dataset 데이터 세트의 이름입니다.

  • CLASS 변수에 분류 변수로 사용되는 변수를 제공합니다.

  • MODEL 데이터 세트의 특정 변수를 사용하여 적합 할 모델을 정의합니다.

  • REPEATED 가설을 테스트하기 위해 각 그룹의 반복 측도 수를 정의합니다.

약물 효과 테스트를받는 두 그룹의 사람들이있는 아래의 예를 고려하십시오. 각 사람의 반응 시간은 테스트 된 네 가지 약물 유형 각각에 대해 기록됩니다. 여기에서는 네 가지 약물 유형의 효과 간의 상관 관계 강도를 확인하기 위해 각 그룹의 사람들에 대해 5 개의 시험을 수행합니다.

DATA temp;
   INPUT person group $ r1 r2 r3 r4;
CARDS;
1 A  2  1  6  5
2 A  5  4 11  9
3 A  6 14 12 10
4 A  2  4  5  8
5 A  0  5 10  9
6 B  9 11 16 13
7 B  12 4 13 14
8 B  15 9 13  8
9 B  6  8 12  5
10 B 5  7 11  9
;
RUN;

PROC PRINT DATA = temp ;
RUN;

   PROC GLM DATA = temp;
   CLASS group;
   MODEL r1-r4 = group / NOUNI ;
   REPEATED trial 5;
RUN;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

ANOVA는 분산 분석을 의미합니다. SAS에서는 다음을 사용하여 수행됩니다.PROC ANOVA. 다양한 실험 설계의 데이터 분석을 수행합니다. 이 과정에서 종속 변수로 알려진 연속 반응 변수는 독립 변수로 알려진 분류 변수로 식별되는 실험 조건에서 측정됩니다. 반응의 변동은 분류의 효과로 인한 것으로 간주되며 나머지 변동은 무작위 오류로 간주됩니다.

통사론

SAS에서 PROC ANOVA를 적용하는 기본 구문은 다음과 같습니다.

PROC ANOVA dataset ;
CLASS Variable;
MODEL Variable1 = variable2 ;
MEANS ;

다음은 사용 된 매개 변수에 대한 설명입니다.

  • dataset 데이터 세트의 이름입니다.

  • CLASS 변수에 분류 변수로 사용되는 변수를 제공합니다.

  • MODEL 데이터 세트의 특정 변수를 사용하여 적합 할 모델을 정의합니다.

  • Variable_1 and Variable_2 분석에 사용되는 데이터 세트의 변수 이름입니다.

  • MEANS 계산 유형과 평균 비교를 정의합니다.

ANOVA 적용

이제 SAS에서 ANOVA를 적용하는 개념을 이해하겠습니다.

SASHELP.CARS 데이터 셋을 고려해 보겠습니다. 여기서 우리는 변수 자동차 유형과 마력 간의 의존성을 연구합니다. 자동차 유형은 범주 형 값을 갖는 변수이므로이를 클래스 변수로 취하고이 두 변수를 MODEL에서 사용합니다.

PROC ANOVA DATA = SASHELPS.CARS;
CLASS type;
MODEL horsepower = type;
RUN;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

평균과 함께 ANOVA 적용

이제 SAS에서 MEANS로 ANOVA를 적용하는 개념을 이해하겠습니다.

또한 터키의 Studentized 방법을 사용하여 다양한 차종의 평균값을 비교하는 MEANS 문을 적용하여 모델을 확장 할 수 있습니다. 차종 범주는 다음과 같은 추가 값과 함께 각 범주의 마력 평균값과 함께 나열됩니다. 오차 평균 제곱 등

PROC ANOVA DATA = SASHELPS.CARS;
CLASS type;
MODEL horsepower = type;
MEANS type / tukey lines;
RUN;

위의 코드가 실행되면 다음과 같은 결과를 얻습니다.

가설 검정은 통계를 사용하여 주어진 가설이 참일 확률을 결정합니다. 일반적인 가설 검정 과정은 아래와 같이 4 단계로 구성됩니다.

1 단계

귀무 가설 H0 (일반적으로 관측치가 순수한 우연의 결과 임) 및 대립 가설 H1 (일반적으로 관측치가 우연 변동의 구성 요소와 결합 된 실제 효과를 보여줌)을 공식화합니다.

2 단계

귀무 가설의 진실을 평가하는 데 사용할 수있는 검정 통계량을 식별합니다.

3 단계

귀무 가설이 참이라고 가정 할 때 관찰 된 것보다 적어도 유의 한 검정 통계가 얻어 질 확률 인 P- 값을 계산합니다. P- 값이 작을수록 귀무 가설에 대한 증거가 더 강해집니다.

4 단계

p- 값을 허용 가능한 유의 값 알파 (알파 값이라고도 함)와 비교합니다. p <= alpha이면 관찰 된 효과가 통계적으로 유의하고 귀무 가설이 배제되고 대립 가설이 유효합니다.

SAS 프로그래밍 언어에는 아래와 같이 다양한 유형의 가설 테스트를 수행하는 기능이 있습니다.

테스트 기술 SAS PROC
T-Test t- 검정은 한 변수의 평균이 가정 된 값과 유의하게 다른지 여부를 검정하는 데 사용되며 두 독립 그룹의 평균이 유의하게 다른지 여부와 종속 그룹 또는 쌍을 이룬 그룹의 평균이 유의하게 다른지 여부도 확인합니다. PROC TTEST
ANOVA 하나의 독립 범주 형 변수가있을 때 평균을 비교하는데도 사용됩니다. 독립 범주 형 변수에 따라 구간 종속 변수의 평균이 다른지 확인하기 위해 검정 할 때 일원 분산 분석을 사용하려고합니다. PROC ANOVA
Chi-Square 범주 형 변수의 빈도가 우연으로 인해 발생할 가능성이 있는지 평가하기 위해 카이 제곱 적합도를 사용합니다. 범주 형 변수의 비율이 가정 된 값인지 여부에 관계없이 카이 제곱 검정을 사용해야합니다. PROC FREQ
Linear Regression 단순 선형 회귀는 변수가 다른 변수를 얼마나 잘 예측하는지 테스트하려는 경우에 사용됩니다. 다중 선형 회귀를 사용하면 여러 변수가 관심 변수를 얼마나 잘 예측하는지 테스트 할 수 있습니다. 다중 선형 회귀를 사용할 때 예측 변수가 독립적이라고 추가로 가정합니다. PROC REG