SAS 프로그래밍 – 데이터 스텝 SAS 소개 및 Data Step 심평원 표본자료 불러오기 신주영

Slides:



Advertisements
Similar presentations
Python Ch.06 RaspberryPi Sejin Oh. Raspberry Pi Python  IDLE(Integrated Development Environment)  라즈베리 파이 배포본들은 일반적으로 파이썬과 파이썬 3 의 IDLE 파 이썬 개발 도구를.
Advertisements

1/ 편집 기능 사용하기 – 실습 1 글자 모양을 바꾸고 싶은 곳을 블록 설정 [ 글자 모양 ] 대화 상자에서 [ 글꼴 ] ‘ 궁서체 ’, [ 글자 색 ] ‘ 토마토색 ’ 으로 선택 → [ 설정 ] 클릭 → 글자 모양 변경.
1 파일 및 폴더 다루기 A. 파일이란 : 응용프로그램을 이용해서 만든 사용자가 만든 정보의 집합 - 파일 형식 : 이름과 확장자로 이뤄짐 예 sample.txt 샘플.txt - 복원하려면 휴지통에서 파일선택 후 드래그해서 밖으로 이동 혹은 RESTORE B. 확장자의.
1/29 키보드로 직접 입력할 수 없는 다양한 기호와 한자를 입력하는 방법을 알아 보자. 또한 블록으로 영역을 설정하는 여러 가지 방법에 대해 살펴본 후 블록 으로 설정된 내용을 복사하여 붙여넣거나, 잘라내고 이동하는 방법에 대해서 도 알아보자. 02_ 문서의 입력과 편집.
1 08 배열. 한국대학교 객체지향연구소 2 C 로 배우는 프로그래밍 기초 2 nd Edition 배열  동일한 자료유형의 여러 변수를 일괄 선언  연속적인 항목들이 동일한 크기로 메모리에 저장되는 구조  동일한 자료 유형이 여러 개 필요한 경우에 이용할 수 있는.
데이터 완전삭제프로그램 Perfect Delete 사용설명서  주의 이 프로그램을 이용하여 삭제된 데이터는 어떠한 방법으 로도 복구가 불가능합니다. 그러므로 실제 데이터 삭제시 신중을 기하기 바랍니다.
출석수업 과제 – 총 5문제, 10월 25일 제출 정보통계학과 장영재 교수.
Format String Attack! 포맷 스트링 공격 경일대학교 사이버보안학과 학년 남주호.
2장. 프로그램의 기본 구성. 2장. 프로그램의 기본 구성 2-1"Hello, World!" 들여다 보기 /* Hello.c */ #include int main(void) { printf("Hello, World! \n"); return 0;
New Handy Terminal(DT-900/930) Ver. 1.1
Database Laboratory, Hong Ik University
제 09 장 데이터베이스와 MySQL 학기 인터넷비즈니스과 강 환수 교수.
테이블 : 데이터베이스를 구성하는 요소로 같은 성격에 정보의 집합체. 레코드 : 하나의 정보를 가지고 있는 컬럼의 집합체
4장. 웹로직 서버상에서의 JDBC와 JTA의 운용
SEOUL NATIONAL UNIVERSITY OF SCIENCE & TECHNOLOGY
1. C++ 시작하기.
SqlParameter 클래스 선문 비트 18기 발표자 : 박성한.
컴퓨터 프로그래밍 기초 #02 : printf(), scanf()
                              데이터베이스 프로그래밍 (소프트웨어 개발 트랙)                               퍼스널 오라클 9i 인스톨.
WinCE Device Driver 실습 #2
학습목표 학습목차 다른 홈페이지의 HTML 파일 코드를 보는 방법에 대해 알아봅니다.
이의신청 급여기준 안내 건강보험심사평가원 광주지원.
공학컴퓨터프로그래밍 Python 염익준 교수.
제 2장 SAS 프로그램의 구성 DATA 단계와 PROC(EDURE) 단계
프로그래밍 개요
인제대학교 ACA 포토샵 시험 접수 가이드.
UNIT 07 Memory Map 로봇 SW 교육원 조용수.
[ ] RFID/2D시스템 화면 기능 목록 루텍 황어진 안녕하십니까?
이름 : 황 상 두 전화번호 : 이메일 : PinTool 이름 : 황 상 두 전화번호 : 이메일 :
SAS Statistical Analysis System 통계패키지 실습 (2011년 1학기)
24장. 파일 입출력.
인터넷응용프로그래밍 MYSQL(phpMyAdmin).
Linux/UNIX Programming
Chapter6 : JVM과 메모리 6.1 JVM의 구조와 메모리 모델 6.2 프로그램 실행과 메모리 6.3 객체생성과 메모리
1. 입력 데이터 대학, 학과: 대학이 존재하지 않을 경우 학과명을 대학에 입력 학과명은 공백으로 유지
자바 5.0 프로그래밍.
컴퓨터 프로그래밍 기초 - 8th : 함수와 변수 / 배열 -
컴퓨터 계측 및 실습 디지털 출력 영남대학교 기계공학부.
S-Work 2.0 DRM 신규 버전 설치 가이드 SOFTCAMP
^^ Computer Programming 2 dmpr.cnu.ac.kr/~daygax.
기획재정부 국고보조금통합관리시스템 구축 추진단
디버깅 관련 옵션 실습해보기 발표 : 2008년 5월 19일 2분반 정 훈 승
제 15 강 문자와 코드 shcho.pe.kr.
에어 PHP 입문.
입고실적 현황 메뉴얼 작성자 : 대리 노진호 작성일 : 1.개요
오라클 11g 보안.
Linux 9.X 기초에서 활용까지 Chapter 06 VI 편집기.
기초C언어 제2주 실습 프로그래밍의 개념, 프로그램 작성 과정 컴퓨터시뮬레이션학과 2016년 봄학기 담당교수 : 이형원
Chapter 10 데이터 검색1.
시스템 인터페이스 Lab1 X-window 및 명령어 사용.
TVM ver 최종보고서
1. 입력 데이터 ② 대학, 학과: 대학이 존재하지 않을 경우 학과명을 대학에 입력 학과명은 공백으로 유지 (하단 참조)
9 브라우저 객체 모델.
서적DB개발 과제 Page 2의 ERD를 통해 구축할 서적 DB의 구조를 파악한다. (4개의 개체에 대해 확인함)
8장 선택 논리 II 1. 논리연산자 1.1 논리연산자 : AND (&&) 1.2 논리연산자 : OR (||)
실습과제 (변수와 자료형, ) 1. 다음 작업 (가), (나), (다)를 수행하는 프로그램 작성
제 4 장 Record.
1장 C 언어의 개요 C 언어의 역사와 기원 C 언어의 특징 프로그램 과정 C 프로그램 구조 C 프로그램 예제.
적용 가능 시간표 무한 생성 기계 2007/06/18 최석훈.
아두이노 프로그래밍 2일차 – Part4 아날로그 키패드 활용하기 강사: 김영준 목원대학교 겸임교수
Microsoft Word 2002 제1장 문자열의 삽입과 변경.
9장. spss statistics 20의 데이터 변수계산
NEW요양기관정보마당 당뇨 웹EDI 사용자 매뉴얼 급여관리실.
 6장. SQL 쿼리.
Docker Study 6~7.
Report #2 (기한: 3/16) 데이터 구조 과목의 수강생이 50명이라고 가정한다. 이 학생(학번은 2016????으로 표현됨)들의 중간 시험(0~100), 기말 시험(0~100) 성적을 성적 파일에 작성하라(프로그램을 통해서 또는 수작업으로). 성적 파일을 읽어들여서.
Chapter 11. 문서 인쇄 및 파일 형식.
SPL-Duino 블록 편집기 이용하기 전류센서 블록 만들기 SPL-Duino 블록 편집기를 실행합니다.
제 2 회 보건의료 빅데이터 사이언티스트 인증 프로그램 일 시 : (월) – 04.04(금) (5일간)
1. 실습 시간에 수행한 avd 생성 및 실행, adb shell 접속 및 명령어 수행 결과를 제출한다.
Presentation transcript:

SAS 프로그래밍 – 데이터 스텝 SAS 소개 및 Data Step 심평원 표본자료 불러오기 신주영 2015. 3.14 성균관대학교 강의(2) SAS 프로그래밍 – 데이터 스텝 SAS 소개 및 Data Step 심평원 표본자료 불러오기 신주영

심평원자료활용 자료분석강의- 6회 1. 심평원자료 구조 이해하기(3/7) 20, 30, 40, 53, 약가마스터, 수가마스터 구조 2. SAS 프로그래밍 Data-step(3/14) 실습: 심평원 표본자료 SAS 로 불러오기 3. SAS 프로그래밍 SQL(3/21) 실습: 노인 해열진통소염제 사용평가 4. SAS프로그래밍 Macro(3/28) 실습: 임신부 혈당강하제 사용평가 5. 심평원자료 이용한 연구주제 발표(4/4) (학생발표) 6. 약물부작용 인과관계 평가(4/11) 실습: 후향적 코호트연구 분석 6주 수강 이후, 심평원자료이용한 연구결과 과제물 제출

심평원 표본자료의 구조 명세서 (20) 진료내역 (30) 처방전내역 (53) 약제급여 분류코드: 의약품의 경우 제품코드 심평원 표본자료의 구조 명세서 (20) 진료내역 (30) 처방전내역 (53) 약제급여 명세서연결코드 수진자고유번호 명세서연결코드 명세서연결코드 급여적용개시일자 급여적용종료일자 품명 규격 단위 수진자고유번호 요양기관고유번호 입원, 외래 구분 입내원일수 서식구분코드 주상병 부상병 진료과목 요양개시일자 연령 성별 추출확률 샘플가중치 분류코드 분류코드 분류코드 항코드 목코드 분류코드구분 일반명코드 분류코드 단가 일일투여량 총투여일수 줄번호 분류코드구분 1회투약량 1일투약량 총투여일수 단가, 금액 일반명코드 제조회사명 복지부효능코드 투여경로 급여구분 일반명코드 일반명 단가 분류코드: 의약품의 경우 제품코드 표본자료에는 의약품에 대한 분류코드 부재 일반명코드(성분명코드 활용할 것)

심평원 표본자료 구성 표본자료 nps_20_01.txt nps_20_02.txt nps_20_03.txt yhiko

심평원 표본자료 변수목록(Layout) Sheet 구분 20table_명세서일반내역 30table_진료내역 40table_상병 YKIHO_요양기관현황 표1. 진료과목코드 표2. 특정기호코드

약가마스터 찾기

수가마스터 찾기 http://hira.or.kr/dummy.do?pgmid=HIRAA910001000000&cmsurl=/cms/law/02/03/request.html

약가마스터, 수가마스터 구조 약제급여목록20120701.xls 복지부분류코드 주성분코드 (식약청 허가 목록 코드부여체계와는 별개) 제품코드, 제품명, 업체명 규격, 단위, 전문/일반 상한금액 수가파일20120701.xls 수가코드 한글명 예) 제왕절개술, 유도분만 등 영문명 의원단가

실습자료 약제급여목록, 분석대상 성분명 코드 정리

약물목록 정리 시 주의할 점 2012년 1년간의 심평원 청구자료를 활용한다면, 2011년 12월 심평원 약제급여목록 활용 2012년 매월 심평원 약제급여목록 활용 2013년 12월 심평원 약제급여목록 활용 누락되는 성분명이 없도록 주의 할 것

약물목록 정리 시 주의할 점 우리나라 식약청 허가성분전체 급여의약품: 심평원 약제급여목록 확인 비급여의약품 100/100 본인부담 약제 의사의 진단적 판단에 의하여, 급여 또는 100/100본인부담 예시) 제픽스, 바이옥스, 세리브렉스 캅셀 등 (진짜) 비급여의약품 비아그라, 비만치료제 등

Ⅰ. SAS 소개 Ⅱ. 라이브러리생성, 자료불러오기 실습 Ⅲ. Data Step 소개 및 실습 Ⅳ. 표본자료 불러오기 실습

Ⅰ. SAS 소개

Ⅰ. SAS 소개 □ SAS 화면 구성 편집기 창 탐색기 창 로그 창 출력 창

Ⅰ. SAS 소개 □ SAS 화면 구성 • 편집기 창 : 자료, 프로그램 명령어의 입력, 편집, 저장, 열기를 위해 사용 • 편집기 창 : 자료, 프로그램 명령어의 입력, 편집, 저장, 열기를 위해 사용 • 로그 창 : 편집기창에서 작성한 프로그램 실행 시 오류 여부, 오류 위치 확인 • 출력 창 : 프로그램 결과물을 화면에 출력 • 탐색기 창 : SAS 파일의 열기, 이동, 삭제, 복사 등 프로그램 편집기의 기능

Ⅰ. SAS 소개 □ SAS programing의 일반적 절차 Data Step Proc Step RAW DATA (EXCEL, Text …) Data Step SAS DATA (XXX.sas7bdat) Proc Step OUTPUT

Ⅰ. SAS 소개 □ SAS programing의 기본 구조 Data Step Proc Step RAW DATA (EXCEL, Text …) • Data 새로 만들기 • 기존 Data 편집하기 • Data 합치기 등 • Data를 이용하여, 통계분석 등 원하는 작업을 수행 Data Step SAS DATA (XXX.sas7bdat) Proc Step OUTPUT

Ⅰ. SAS 소개 □ SAS 명령문의 형식 • SAS의 모든 문장은 ;(semicolon)으로 마침 • 한 줄에 여러 개의 명령문 사용 가능 • 모든 실행문은 run; 에 의해 프로그램 수행후 종료 • SAS 프로그램 내의 코멘트 사용 1) 블록주석 : 주석 시작시 /* ~~, 주석 종료시 ~~ */ 2) 문장주석 : 문장 시작시 *, 문장 종료시 ;

Ⅱ. 라이브러리 생성, 자료 불러오기

Ⅱ. 라이브러리 생성, 자료불러오기 □ SAS Library • SAS data의 저장 장소 • 시스템내의 물리적 경로(즉, 폴더)에 별칭을 부여한 것

Ⅱ. 라이브러리생성, 자료불러오기 □ SAS Data의 구조 • 값들의 모임 • 값들의 모임 • 관측치(observation, 행)와 변수(variables, 열)로 구성

Ⅱ. 라이브러리생성, 자료불러오기 □ SAS Library • 임시 라이브러리(Work) • 할당방법 Ex) LIBNAME kmh "c:\mydata"; 폴더 먼저 만들고 해야 함 LIBNAME libref명‘물리적 경로명’; /* libref명은 8자리 이하 */

Libname test ‘C:\SAS강의예제’ ; Libname test ‘C:\SAS강의예제’ ;

-실습. 라이브러리 생성 및 약물자료불러오기- <1. 해열진통소염제 약물목록.xls> 실습자료 <1. 해열진통소염제 약물목록.xls> 붉은 색 글씨 부분 : 한국

Ⅲ. Data Step □ SAS Data의 생성 Data Step

Ⅲ. Data Step □ SAS Data의 이름 및 변수명 생성규칙 • 최대 32자리까지 가능 • 최대 32자리까지 가능 • 영문자(A~Z)나 _으로 시작하고, 나머지는 영문자, 숫자, _ 가능 • blank 및 특수문자(? / * #) 사용 불가 • 대소문자 구분 없음 • 변수 type은 문자/ 숫자로 구분, 단, 날짜값은 숫자로 인식 ( 1960/ 1/ 1 : 0, 1959/12/31 : -1, 1960/ 1/ 2 : 1 ) • 결측값(missing value) : 문자는 blank(공백), 숫자는 . 으로 표현

Ⅲ. Data Step □ 데이터 불러오기 - 심평원 표본자료는 특수 포맷 형태 - 텍스트 파일 data pas_formatted; * 파스 의약품 유해사례 보고건수; informat drug_birth yymmdd10.; informat drug_name $20. ; informat drug_code $9. ; informat company $15. ; informat cnt comma6. ; format drug_birth yymmdd10. ; format drug_name $20. ; format drug_code $9. ; format company $15. ; format cnt comma6. ; input drug_birth drug_name $ drug_code $ company $ cnt ; cards; 2005-08-10 노펜첩부제 200500298 중외제약 96 2002-04-13 맨담케토플라스타 200200947 보령제약 5 2005-06-07 맨담플루비플라스타 200501187 보령제약 1; run;

※ 특수 포맷으로 입력된 데이터 읽기 → Informat: SAS에게 Raw Data를 어떻게 읽을지 형식을 알려주는 것 - Raw data를 무슨 타입(문자/숫자)으로 몇 자리만큼(길이) 읽을지 비표준 데이터(1960/01/01또는 1,234 등)의 경우 데이터 생김새 지시 ∙format: SAS에게 Raw Data를 어떻게 보여줄지 형식을 알려주는 것

※ Infile 문장의 이해 ※ Infile 문장의 옵션 data kids_name; /*약물목록*/; infile 'C:\mydata\약물목록.txt' dlm = ' ' ; input no team $ name $; run; ※ Infile 문장의 옵션 옵션 의미 예시 Dlm= 구분자 정의, 기본 구분자는 공백 Dlm=’,’ DSD - 연속된 구분자가 있을 경우 결측값으로 처리 ex) 20,30,,50 => (20 30 50) VS (20 30 . 50) - “”사이에 존재하는 구분자를 구분자가 아닌 값의 일부로 인식 ex) "George Bush, Jr." Missover 레코드의 끝을 만났음에도 input문장에 아직 처리되지 않은 변수들이 남은 경우 그 변수 값을 missing 으로 처리 missover Lrecl= record의 길이, 기본 길이는 256바이트 Lrecl=1000 Firstobs= 읽어올 raw data의 시작 record를 지정 Firstobs=2 Obs= 읽어올 raw data의 끝 record를 지정 Obs=100

실습자료 2. dataset실습프로그램.sas

Ⅳ. 심평원 표본자료 불러오기

심평원자료 SAS file로 불러오기 한글파일 열기 1. 심평원 자료를 저장할 library를 생성한다. libname (library name) '(library 생성 위치)'; run; 예) libname nps_2009 'D:\HIRA-NPS-2009\HIRA-NPS(2012_5_17)\sas_nps'; run; 2. 심평원 자료에서 명세서 일반내역(20 table) 불러오기 3회로 나누어 불러오며, 각각 Table20_01, Table20_02, Table20_03이라 한다. ( 을 제외한 부분은 동일 명령어로, “Table20_○○” 의 ○○부분에 01, 02, 03을 각각 입력하여, 각각의 명령어를 실행한다.)  

심평원자료 SAS file로 불러오기(20) 명세서 일반내역정보 data NPS_2009.TABLE20_○○; infile 'd:\HIRA-NPS-2009\HIRA-NPS(2012_5_17)\HIRA-NPS(2012_5_17)\nps_20_○○.txt' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ; informat NO best. ; informat FORM_CD ; informat RECU_FR_DT yymmdd6. ; informat agg best. ; informat gen ; informat dif ; ..(중략) format NO best. ; format FORM_CD ; format RECU_FR_DT yymmdd6. ; format agg best. ; format gen ; format dif ; ..(중략) Input NO FORM_CD $ RECU_FR_DT agg ; if _ERROR_ then call symputx('_EFIERR_', run;

심평원자료 SAS file로 불러오기(30) 진료내역정보 12회로 나누어 불러오며, 각각 Table30_01, Table30_02, ~ Table30_12 이라 한다. ( 을 제외한 부분은 동일 명령어로, “Table30_○○” 의 ○○부분에 01, 02, …, 12을 각각 입력하여, 각각의 명령어를 실행한다.)

심평원자료 SAS file로 불러오기(40) 상병명 정보 data NPS_2009.TABLE40_01; %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ infile 'd:\HIRA-NPS-2009\HIRA-NPS(2012_5_17)\HIRA-NPS(2012_5_17)\nps_40_01.txt' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ; informat keycode best. ; informat DSBJT_CD ; informat SEQ_NO ; informat SICK_SYM ; format keycode best. ; format DSBJT_CD ; format SEQ_NO ; format SICK_SYM ; Input keycode DSBJT_CD $ SEQ_NO $ SICK_SYM $ ; if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ run;

[SD-DUR-12-1.0] 심평원자료 SAS file로 불러오기(53) 처방전 상세내역1 data NPS_2009.TABLE53_01 ; %let _EFIERR_ = 0; /* set the ERROR detection macro variable */ infile 'D:\HIRA-NPS-2009\HIRA-NPS(2012_5_17)\HIRA-NPS(2012_5_17)\nps_53_01.txt' delimiter = ',' MISSOVER DSD lrecl=32767 firstobs=2 ; informat keycode best. ; informat LN_NO ; informat DIV_TYPE_CD ; informat DD_MQTY_FREQ best.; informat DD_EXEC_FREQ best.; informat MDCN_EXEC_FREQ best.; informat UN_COST best.; informat AMT best.; informat GNL_NM_CD ;

[SD-DUR-12-1.0] 심평원자료 SAS file로 불러오기(53) 처방전 상세내역2 format keycode best. ; format LN_NO ; format DIV_TYPE_CD ; format DD_MQTY_FREQ best.; format DD_EXEC_FREQ best.; format MDCN_EXEC_FREQ best.; format UN_COST best.; format AMT best.; format GNL_NM_CD ; input keycode LN_NO $ DIV_TYPE_CD $ DD_MQTY_FREQ DD_EXEC_FREQ MDCN_EXEC_FREQ UN_COST AMT GNL_NM_CD $ ; if _ERROR_ then call symputx('_EFIERR_',1); /* set ERROR detection macro variable */ run;

실습자료 심평원표본자료 3. 표본자료불러오기프로그램.sas