목적
오늘은 SAS 프로그램을 이용하여 dataset을 만드는 방법에 대해 알아보자.
SAS 프로그램에서 dataset을 만드는 방법은 크게 아래와 같은데,
- SAS 프로그램 내에서 data step을 이용하여 dataset을 만드는 방법
- 외부 데이터 (Excel, DB, text file 등등)를 불러와 dataset을 만드는 방법
1. SAS 프로그램 내에서 dataset을 만드는 방법
아래와 같이 직접 확장편집기에 SAS code를 입력하여 만들 수 있다.
data a; input a b c; datalines; 1 2 3 4 5 6 7 8 9 ; run; |
- data 데이터셋명; ~~~ run;
- input: 변수 지정 (문자 변수는 뒤에 $를 붙인다. 예를 들면 a $ b $ c $)
- datalines(cards): record 지정
2. 외부 데이터 (Excel, DB, text file 등등)를 불러와 dataset을 만드는 방법
2.1 Import 프로시저 (Proc import)
엑셀 파일(Excel)
proc import datafile="c:\test.xlsx" out=a dbms=excel replace; sheet="Sheet1"; getnames=yes; run; |
- datafile: 파일 주소
- out: 만들 데이터셋명
- dbms: 파일 형식
- replace: 덮어쓰기
- sheet: 시트명
- getnames: 첫번째 행을 변수명으로 가져오기
- dbms를 이용하여 여러 형식의 파일을 불러올 수 있다. 결과는 모두 같다.
쉼표로 구분된 파일(CSV)
proc import datafile="c:\test.csv" out=a dbms=csv replace; getnames=yes; run; |
Text 파일(구분자: tab)
proc import datafile="c:\test.txt" out=a dbms=tab replace; getnames=yes; run; |
Text 파일(구분자: ,)
proc import datafile="c:\test.txt" out=a dbms=dlm replace; getnames=yes; run; |
2.2 Infile 문 활용하기
data a; infile 'c:\test.txt' firstobs=2 expandtabs; input a b c; run; |
- infile: 파일 주소
- firstobs: 첫번째 데이터의 행
- expandtabs: 구분자가 tab으로 되어 있음
- input: 변수명
Infile 기타 옵션들
- missover: 읽지 못한 변수를 결측치 처리 (마지막 변수를)
- flowover: default. 변수에 해당하는 값이 없으면 다음 행으로 넘어간다.
- dlm=: 구분자, dsd(comma를 구분자로 사용), expandtabs (dlm='09'x) 등등 있음
'끄적이는 프로그래밍 > SAS 프로그래밍' 카테고리의 다른 글
SAS programming 기초 (자료의 결합 - 세로 결합) (0) | 2022.08.29 |
---|---|
SAS programming 기초 (제어문, IF, Do loop, Select when) (0) | 2022.08.28 |
Mock-up shells(TFLs) 와 통계분석 결과 결합하기 (SAR) (0) | 2022.08.16 |
SAS로 RTF 파일 출력하기 4 (proc sgplot) (0) | 2022.08.11 |
SAS로 RTF 파일 출력하기 3 (proc report) (2) | 2022.08.09 |