SAS 프로그래밍 – SAS 코딩 방법 알아보기!



이 SAS 프로그래밍 블로그는 SAS 프로그래밍 개념을 소개하고 예제를 통해 SAS의 다양한 기본 사항을 자세히 이해하도록 도와줍니다.

이 블로그에서는 SAS 프로그래밍의 몇 가지 중요한 개념을 소개합니다. 시작하기 전에 SAS에 익숙해지는 것이 중요합니다. 내 이전 블로그 SAS 튜토리얼 SAS와 그 응용 프로그램을 이해하는 데 도움이되고 여기에서 프로그래밍 환경으로 사용할 SAS University Edition을 설치하는 데 도움이 될 것입니다. 올해 어떤 기술을 습득해야하나요? 또한 데이터 분석을 시작할 계획이라면 똑같이 시작하는 가장 좋은 방법 중 하나입니다.

Edureka 2019 기술 경력 가이드가 나왔습니다! 가장 인기있는 직무, 정확한 학습 경로, 업계 전망 등이 가이드에서 제공됩니다. 다운로드 지금.





그래서 더 이상지연,SAS 프로그래밍을 시작하겠습니다.

이 블로그는 다음 주제를 이해하는 데 도움이됩니다.



코딩을 시작하기 전에 SAS 프로그래밍에 중요한 몇 가지 중요한 용어에 대해 간략히 설명하겠습니다.

SAS 프로그래밍의 기초

SAS Windows

대규모 조직 및 교육 기관은 SAS Windows 사용을 선호합니다. SAS Windows에는 코드 작성에 필요한 시간을 줄이는 데 도움이되는 많은 유틸리티가 있습니다.

다음 이미지는 SAS Windows의 여러 부분을 보여줍니다.



SAS-Windows-SAS 프로그래밍-Edureka

  • 로그 창 : 실행 창입니다. 여기에서 프로그램 실행을 확인할 수 있습니다. 또한 오류, 경고 및 메모를 표시합니다.
  • 코드 창 :이 창은 편집기 창이라고도합니다. SAS 코드를 작성할 수있는 빈 종이 또는 메모장으로 간주하십시오.
  • 출력 창 : 이름에서 알 수 있듯이이 창은 편집기에서 작성한 프로그램 / 코드의 출력을 표시합니다.
  • 결과 창 : 한 세션에서 실행되는 프로그램의 모든 출력을 나열하는 인덱스입니다. 특정 세션의 결과를 보관하고 있으므로 소프트웨어를 닫고 다시 시작하면 결과 창이 비어 있습니다.
  • 탐색 창 : 시스템의 모든 라이브러리 목록을 보유합니다. 여기에서 시스템 지원 파일을 찾아 볼 수도 있습니다.

일부 조직에서는 Linux를 사용하지만 그래픽 사용자 인터페이스없이 모든 쿼리에 대해 코드를 작성해야합니다. 따라서 사용이 불편합니다.

SAS 데이터 세트

SAS 데이터 세트를 데이터 파일이라고합니다. 데이터 파일은 행과 열로 구성됩니다. 행은 관찰을 보유하고 열은 보유변수 이름.

SAS 변수

SAS에는 두 가지 유형의 변수가 있습니다.

  • 숫자 변수 : 이것이 기본 변수 유형입니다. 이러한 변수는 수학적 표현에 사용됩니다.
  • 캐릭터 변수 :문자 변수는 수학 식에 사용되지 않는 값에 사용됩니다.
    텍스트 또는 문자열로 처리됩니다. 변수는 다음을 추가하여 문자 변수가됩니다.‘$’s점화변수 이름 끝에.

SAS 라이브러리

SAS 라이브러리는 컴퓨터의 동일한 폴더 또는 디렉토리에 저장된 SAS 파일 모음입니다.

  • 임시 도서관 :이 라이브러리에서 데이터 세트는 SAS 세션이 종료 될 때 삭제됩니다.
  • 영구 도서관 : 데이터 세트가 영구적으로 저장됩니다. 따라서 여러 세션에서 사용할 수 있습니다.

사용자는 키워드를 사용하여 사용자 정의 라이브러리로 알려진 새 라이브러리를 만들거나 정의 할 수도 있습니다. LIBNAME . 이것들은 또한 영구 라이브러리입니다.

SAS 프로그래밍 : SAS 코드 구조

SAS 프로그래밍은 다음 두 가지 구성 요소를 기반으로합니다.

  • 데이터 단계 : DATA 단계는 SAS 데이터 세트를 생성 한 다음 데이터를 PROC 단계로 전달합니다.
  • PROC 단계 : PROC 단계는 데이터를 처리합니다.

SAS 프로그램은 아래 언급 된 규칙을 따라야합니다.

  • 거의 모든 코드는 DATA 또는 PROC 단계로 시작됩니다.
  • SAS 코드의 모든 줄은 세미콜론으로 끝납니다.
  • SAS 코드는 RUN 또는 QUIT 키워드로 끝납니다.
  • SAS 코드는 대소 문자를 구분하지 않습니다.
  • 여러 줄에 걸쳐 코드를 작성하거나 한 줄에 여러 명령문을 작성할 수 있습니다.

이제 몇 가지 기본 용어를 살펴 보았으므로 다음 기본 코드로 SAS 프로그래밍을 시작하겠습니다.

DATA Employee_Info 입력 Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS 실행

위 코드에서 Employee_Info라는 데이터 세트를 생성했습니다. 3 개의 변수, 하나의 숫자 변수는 Emp_Id이고 두 개의 문자 변수는 Emp_Name 및 Emp_Verticals입니다. 실행 명령은 출력 창에 데이터 세트를 표시합니다.

아래 이미지는 위에서 언급 한 코드의 출력을 보여줍니다.

인쇄보기에서 결과를보고 싶다고 가정하면 PROC PRINT 프로 시저를 사용하여 수행 할 수 있으며 나머지 코드는 동일하게 유지됩니다.

DATA Employee_Info 입력 Emp_ID Emp_Name $ Emp_Vertical $ datalines 101 Mak SQL 102 Rama SAS 103 Priya Java 104 Karthik Excel 105 Mandeep SAS Run PROC PRINT DATA = Employee_Info Run

아래 이미지는 위 코드의 출력을 보여줍니다.

방금 데이터 세트를 만들고 PRINT 절차가 어떻게 작동하는지 이해했습니다. 이제 위의 데이터 세트를 가져 와서 추가 프로그래밍에 사용하겠습니다. 직원의 가입 날짜를 데이터 세트에 추가한다고 가정 해 보겠습니다. 그래서 우리는 DOJ라는 변수를 만들고 입력으로 제공하고 결과를 인쇄합니다.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ datalines 101 Mak SQL 18/08/2013102 Rama SAS 25/06/2015103 Priya Java 21/02/2010104 Karthik Excel 19/05/2007105 Mandeep SAS 11/09/2016 PROC PRINT DATA = Employee_Info 실행 실행

아래 이미지는 위 코드의 출력을 보여줍니다. 변수가 생성 된 것이 보이지만 DOJ 값이 인쇄되지 않았습니다. 대신 점이 날짜 값을 대체 한 것을 볼 수 있습니다.


왜 이런 일이 발생 했습니까? 음, DOJ 변수에는 접미사 '$'가 없습니다. 즉, 기본적으로 SAS는 숫자 변수로 읽습니다. 그러나 입력 한 데이터에는 특수 문자 '/'가 있으므로 순수한 숫자 데이터가 아니므로 결과를 인쇄하지 않습니다. 로그 창을 확인하면 '변수 DOJ에 대한 잘못된 데이터'라는 오류 메시지가 표시됩니다.

이제이 문제를 어떻게 해결할까요? 이를 해결하는 한 가지 방법은 DOJ 변수에 접미사‘$’를 사용하는 것입니다. DOJ 변수를 문자로 변환하고 날짜 값을 인쇄 할 수 있습니다. 코드를 변경하고 출력을 보겠습니다.

DATA Employee_Info input Emp_ID Emp_Name $ Emp_Vertical $ DOJ $ datalines 101 Mak SQL 18/08/2013102 Rama SAS 25/06/2015103 Priya Java 21/02/2010104 Karthik Excel 19/05/2007105 Mandeep SAS 11 / 09 / 2016 실행 PROC PRINT DATA = Employee_Info 실행

출력 화면에 다음 출력이 표시됩니다.


DOJ를 문자로 변환하여 데이터 값이 날짜로 표시되는 것을 확인할 수 있습니다. 그러나 이것은 일시적인 해결책입니다. 어떻게 설명할까요?

글쎄, 은행에 비슷한 데이터 세트가 있다고 상상해보십시오. 데이터 세트에는 대출 금액, 할부,대출 할부 기한. 보유자가 할부 지불 기한을 놓 쳤고 은행이 지연을 계산하려고한다고 가정 해보십시오. 은행은 마감일과 현재 날짜의 차이를 계산해야합니다.

해킹의 장단점

그러나 은행의 데이터 세트에 문자 형식의 날짜가있는 경우 은행에서 수학적 연산을 수행 할 수 없습니다. 이 문제는 데이터 세트에도 영향을 미칠 수 있습니다. 그렇다면이 문제를 어떻게 해결해야할까요?

다음 개념은이 문제를 극복하는 데 도움이 될 것입니다.

SAS의 정보 및 형식

SAS 프로그래밍을 잘하고 싶다면이 주제를 잘 이해하는 것이 중요합니다.기억할 수 있다면 SAS에는 두 가지 표준 변수 유형이 있습니다.

  • 숫자
  • 캐릭터

SAS가 비표준 변수를 발견하면 SAS에서 오류가 발생하거나 원하는 출력을 얻지 못합니다. 이 문제를 극복하기 위해 SAS는정보및 형식.

더 찾아 봐

정보는 일반적으로 외부 파일 또는 플랫 파일 (예 :텍스트 파일 또는 순차 파일). 정보는 SAS에게 읽는 방법을 지시합니다.데이터를 SAS 변수로 변환합니다. SAS에는 세 가지 유형의 정보가 있습니다.문자, 숫자 및 날짜 / 시간. 정보의 이름은 다음과 같습니다.구문 구조 :

  • 문자 정보 : $ INFORMATw.
  • 숫자 정보 : INFORMATw.d
  • 정보를받은 날짜 / 시간 : 정보 w.

‘$’는 문자 정보를 나타냅니다. INFORMAT은 때때로 선택 사항을 나타냅니다.SAS 정보 형식 이름입니다. 'w'는 너비 (바이트 또는 열 수)를 나타냅니다.변하기 쉬운. 'd'는 숫자 데이터에 사용되어 오른쪽의 자릿수를 지정합니다.소수점. 모든 정보에는 소수점 (.)이 포함되어야 SAS가
SAS 변수와 정보를 구별합니다.

이전 코드로 돌아가서 날짜 / 시간 정보가 도움이되는지 살펴 보겠습니다. 따라서 이에 따라 코드를 변경하고 다음과 같이 날짜 정보를 추가해 보겠습니다.

DATA Employee_Info 입력 Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. 데이터 라인 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007105 Mandeep SAS 11/09/2016 Run PROC PRINT DATA = Employee_Info Run

코드의 3 번 줄은 날짜를 사용하여 변수‘결합 날짜’(DOJ)를 읽도록 SAS에 지시합니다.
정보 형식 MMDDYYw. 각 날짜 필드가 10 개의 공백을 차지하는 경우 'w.'한정자는 다음과 같습니다.10으로 설정합니다.

코드의 출력은 다음과 같습니다.

결과는 여전히 원하는 결과가 없다는 것을 보여줍니다. 대신 DOJ 열에는 지정한 날짜가 아닌 일부 숫자 값이 포함되어 있습니다. 자, 왜 그럴까요? 일단 날짜 정보로 날짜를 읽으면 SAS는 날짜를 숫자로 저장합니다. 즉, 날짜와 1960 년 1 월 1 일 사이의 일 수로 읽습니다 (예 : 3/15/1994는 12492로 저장 됨).

그 이유는 SAS에는 날짜와 시간을 추적하는 세 개의 별도 카운터가 있기 때문입니다. 이러한 날짜 카운터는 1960 년 1 월 1 일에 0에서 시작되었습니다. 따라서 1960 년 1 월 1 일 이전의 날짜는 음수 값을 가지며 이후 날짜는 양수 값을 갖습니다. 매일 자정에 날짜 카운터가 1 씩 증가합니다.

한 가지 이야기는 SAS 창립자가 IBM 370 시스템의 대략적인 생년월일을 사용하기를 원했고 기억하기 쉬운 근사값으로 1960 년 1 월 1 일을 선택했습니다.

DOJ 열에 이러한 숫자가 표시된 이유를 알았으므로 이제이 문제를 해결해 보겠습니다. 이 문제를 극복하기 위해 우리는 Format을 사용합니다.

체재

정보는 데이터를 읽기위한 지침 인 반면 형식은 데이터를 표시하는 데 사용되는 지침입니다.출력 데이터.변수의 형식을 정의하는 것은 SAS에 변수의 값을 표시하도록 지시하는 방법입니다. 형식은 정보 형식 (문자, 숫자 및 날짜-시간)과 동일한 세 가지 클래스로 그룹화되며 항상 점을 포함합니다.

형식 문의 일반적인 형식은 다음과 같습니다.

  • FORMAT 변수 이름 FORMAT-NAME.

Employee_Info 데이터 셋이있는 코드로 돌아가서 FORMAT 명령을 사용하여 날짜를 올바르게 표시 할 수 있는지 확인합니다.

DATA Employee_Info 입력 Emp_ID Emp_Name $ Emp_Vertical $ DOJ INFORMAT DOJ ddmmyy10. DOJ ddmmyy10 포맷. 데이터 라인 101 Mak SQL 18/08/2013 102 Rama SAS 25/06/2015 103 Priya Java 21/02/2010 104 Karthik Excel 19/05/2007105 Mandeep SAS 11/09/2016 Run PROC PRINT DATA = Employee_Info Run

위 코드에서 4 번 줄에 FORMAT 명령을 사용했습니다. 다음 출력 화면은 원하는 출력을 제공합니다.

날짜 형식 명령을 사용하여 데이터 세트를 성공적으로 표시했습니다. 형식 및 정보 사용 방법을 이해 하셨기를 바랍니다.SAS 프로그래밍 블로그로 이동하여 또 다른 중요한 개념을 살펴 보겠습니다.

SAS 루프

SAS 프로그래밍을 수행하는 동안 반복적으로 실행해야하는 상황이 발생할 수 있습니다.여러 번 코드 블록. 동일한 문장 세트를 반복해서 작성하는 것은 불편합니다. 여기에서 루프가 등장합니다. SAS에서 Do 문은 루프를 구현하는 데 사용됩니다. Do Loop라고도합니다. 아래 이미지는SAS에서 Do 루프 문의 일반적인 형식.

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

  • 인덱스 : 인덱스 변수의 시작 값에서 중지 값까지 루프가 계속됩니다.
  • 동안 : 루프는 동안 조건이 거짓이됩니다.
  • 까지 : 루프는 까지 조건이 True가됩니다.

인덱스 루프 수행

인덱스 변수를 시작 및 중지 값으로 사용합니다. 인덱스 루프 수행 . SAS 문은 인덱스 변수가 최종 값에 도달 할 때까지 반복적으로 실행됩니다.
통사론:

indexvariable = initialvalue to finalvalue SAS 문 끝

Do Index Loop를 이해하기 위해 샘플 코드를 살펴 보겠습니다. 아래 코드에서 VAR은 인덱스 변수입니다.

DATA SampleLoop SUM = 0 Do VAR = 1 ~ 10 SUM = SUM + VAR END PROC PRINT DATA = SampleLoop Run

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

Do While 루프

그만큼 하는 동안 루프는 WHILE 조건을 사용합니다. 이 루프는 조건이 참일 때 코드 블록을 실행하고 조건이 거짓이 될 때까지 계속 실행합니다. 조건이 거짓이되면 루프가 종료됩니다.

통사론:

Do While (조건) SAS 문 End

다음 샘플 코드는 DO WHILE 루프를 이해하는 데 도움이됩니다.

DATA SampleLoop SUM = 0 VAR = 1 Do While (VAR<15) SUM = SUM + VAR VAR+1 END PROC PRINT DATA = SampleLoop Run 

위의 코드는 다음과 같은 출력을 제공합니다.

Do until 루프

Do Until 루프는 까지 이 루프는 조건이 거짓 일 때 코드 블록을 실행하고 조건이 참이 될 때까지 계속 실행합니다. 조건이 참이되면 루프가 종료됩니다.

통사론:

C C #과 C ++의 차이점
Do Until (조건) SAS 문 END

샘플 프로그램을 살펴 보겠습니다.

DATA SampleLoop SUM = 0 VAR = 1 Do Until (VAR> 15) SUM = SUM + VAR VAR + 1 END PROC PRINT 실행

코드에는 다음과 같은 출력이 있습니다.

따라서 우리는 SAS 프로그래밍의 루프 개념을 마쳤습니다. 지금까지 우리가 공부 한 모든 주제는 일반적인 SAS 프로그래밍의 기초에 대해 이야기했습니다.

이제 몇 가지 통계 절차를 살펴 보겠습니다. 이러한 절차는 고급 분석 절차.

새로운 업데이트를 받으려면 YouTube 채널을 구독하십시오 ..!

SAS를 사용한 기본 통계 절차

프로세스 의미

이 절차는 산술 평균과 표준 편차를 계산하는 데 사용됩니다. 통계를 처음 접하는 사람들은 이러한 용어를 이해하기 어려울 수 있습니다. 따라서 코딩을 시작하고이 절차를 사용하기 전에. 이 용어가 무엇을 의미하는지 설명하려고 노력할 것입니다.

산술 평균부터 시작하여이를 계산하기 위해 SAS 프로그래밍에서 PROC MEANS를 사용하는 방법을 살펴 보겠습니다.

Salesforce에서 앱을 만드는 방법

산술 평균

숫자 변수 값의 합계를 변수 수로 나눈 값은 산술 평균 . 평균이라고도하며 중심 경향의 척도입니다. 중심 경향의 척도는 해당 데이터 세트 내의 중심 위치를 식별하여 데이터 세트를 설명하려는 단일 값입니다.

SAS 프로그래밍에서는 PROC MEANS를 사용하여 산술 평균을 계산합니다. 이 절차를 통해 모든 변수의 평균 또는 데이터 세트의 소수 변수를 찾을 수 있습니다. 그룹을 형성하고 해당 그룹에 특정한 변수의 평균을 계산할 수도 있습니다.

통사론:

PROC MEANS DATA = DATASET 클래스 변수 Var 변수
  • 변수 : 위 구문의 변수는 평균을 계산할 데이터 세트의 변수를 나타냅니다.

데이터 세트의 평균

만약 너라면변수없이 데이터 세트 이름 만 제공하면 데이터 세트에있는 모든 변수의 평균을 계산할 수 있습니다.

샘플 코드를 살펴 보겠습니다. 저는 '자동차'라고하는 사전 정의 된 SAS 데이터 세트를 고려했습니다. 다음 명령은 데이터 세트를 표시합니다.

PROC PRINT data = sashelp.CARS 실행

아래 이미지는 위 코드의 출력을 보여줍니다.


이제이 데이터 세트 코드를 사용하여 데이터 세트에있는 각 변수의 평균을 계산해 보겠습니다.‘자동차’.

PROC MEANS DATA = sashelp.CARS Mean SUM MAXDEC = 2 실행

아래 이미지는 데이터 세트에있는 모든 변수의 평균을 소수점 이하 두 자리까지 보여줍니다.

선택된 변수의 평균

Var 옵션에 이름을 제공하면 지정된 변수의 평균을 얻을 수 있습니다. 아래 코드를 참조하십시오.

PROC MEANS DATA = sashelp.CARS mean SUM MAXDEC = 2 var 마력 실린더 실행

평균 등급

다음을 사용하여 숫자 변수를 그룹으로 구성하여 숫자 변수의 평균을 찾을 수 있습니다.그룹화 할 매개 변수입니다.다음 샘플 코드 고려. 서로 다른 자동차의 '제조'및 '유형'클래스로 분류 된 서로 다른 그룹의 마력 평균을 알아 봅시다.

PROC MEANS DATA = sashelp.CARS MEANS SUM MAXDEC = 2 class make type var horsepower Run

아래 이미지는 위 코드의 출력을 보여줍니다.

SAS 프로그래밍 블로그를 계속 진행하고 또 다른 중요한 통계 개념을 살펴 보겠습니다.

표준 편차

표준 편차 (SD)는 주어진 데이터 세트의 데이터가 얼마나 다양한지를 측정 한 것입니다. 수학적으로 각 데이터 포인트가 데이터 세트의 평균 값에 얼마나 가까운 지 알려줍니다. 표준 편차 값이 0에 가까우면 데이터 포인트가 데이터 세트의 평균에 매우 가깝다는 것을 나타내고 높은 표준 편차는 데이터 포인트가 광범위한 값에 분산되어 있음을 나타냅니다.

SAS에서는 두 가지 절차를 사용하여 표준 편차 값을 계산할 수 있습니다. 그들은:

  • 프로세스 의미
  • 설문 조사

PROC MEANS를 사용한 표준 편차

proc 수단을 사용하여 표준 편차를 측정 할 수 있습니다. 시간 PROC 단계의 옵션. 데이터 세트의 각 숫자 변수에 대한 표준 편차 값을 표시합니다.

통사론:

PROC MEANS DATA = 데이터 셋 STD

이 샘플 코드를 고려하여 SASHELP 라이브러리의 CARS 데이터 세트에서 다른 데이터 세트 CARS1을 생성 해 보겠습니다. 이를 위해 우리는 PROC SQL 프로 시저를 사용합니다. 자동차의 '유형'과 '제조업체'를 사용하여 데이터를 그룹화하고 PROC 평균 단계와 함께 STD 옵션을 사용하여 선택한 변수의 표준 편차를 계산해 보겠습니다.

PROC SQL create table CARS1 as SELECT make, type, horsepower, cylinders, weight FROM SASHELP.CARS WHERE make in ( 'Audi', 'BMW') RUN PROC MEANS DATA = CARS1 STD Run

위의 코드는 선택한 변수에 대한 표준 편차를 제공합니다. 다음 이미지는 출력을 표시합니다.

PROC 설문 조사

이 절차는 범주 형 변수 및 분산에 대한 표준 편차 측정과 같은 일부 고급 기능과 함께 표준 편차를 측정하는 데 사용됩니다.

통사론:

PROC SURVEYMEANS 옵션 통계 키워드 변수 별 클래스 변수 Var 변수

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

  • 으로 관측 값 그룹을 생성하는 데 사용되는 변수를 나타내는 데 사용됩니다.
  • 수업 범주 형 변수에 사용되는 변수를 나타냅니다.
  • 어디 SD를 계산할 변수를 나타냅니다.

클래스 변수의 각 값에 대한 통계를 생성하는 클래스 매개 변수의 사용을 설명하는이 샘플 코드를 살펴 보겠습니다.

PROC SURVEYMEANS DATA = CARS1 STD 클래스 유형 Var 유형 마력 ods 출력 통계 = 직사각형 실행 PROC PRINT DATA = 직사각형 실행

아래 이미지는 위 코드의 출력을 보여줍니다. 95 % 신뢰 구간에 대한 변수 '마력'에 대한 데이터 분포를 보여줍니다. (신뢰 구간은 매개 변수 값이 그 안에있을 확률이 지정되도록 정의 된 값의 범위를 의미합니다.)

이제 SAS 프로그래밍 블로그의 끝으로 이동합니다. 블로그 내용에 의문이나 문제가 있으시면 댓글란에 남겨 주시면 빠른 시일 내에 해결해 드리겠습니다.

SAS를 배우고 분석 분야에서 경력을 쌓으려면 다음을 확인하십시오. 강사 주도의 라이브 교육 및 실제 프로젝트 경험과 함께 제공됩니다. 이 교육은 SAS를 깊이있게 이해하고 SAS 프로그래밍 언어의 다양한 개념을 마스터하는 데 도움이됩니다.

질문이 있으십니까? 의견란에 언급 해 주시면 연락 드리겠습니다.