SAS는 미국 North Carolina에 있는 SAS연구소에 의해 개발된 통계분석 패키지입니다.
처음에는 통계적 전산처리를 위해 계발되었으나 지금은 시계열 (SAS/ETS), 파일관리, 데이터베이스 (SAS/SQL), 그래프 (SAS/GRAPH), OR(SAS/OR)등 거의 모든 자료처리가 가능합니다.
주요 특징은
1.자료관리와 처리의 효율성
2.사용의 용이성, 간편한 통계분석이 가능
3. 간편한 통계분석
4. 보고서 작성의 용이성
5. SAS 프로그램 작성의 다양한 융통성
이 있습니다.
SAS는 SQL, CSV, Xlsx 등 다양한 형식을 지원합니다. Data Step을 사용하여 SAS Data Set을 연결합니다.
그 다음, 생성된 Data Set을 Proc(procedure, 프로시저) Step으로 시각화, 보고서, 기초통계 등을 수행할 수 있습니다.
*용어정리
테이블 : 엑셀과 같이 행과 열로 데이터가 정리된 파일명입니다.
라이브러리: 테이블이 속한 폴더명입니다.
*라이브러리의 종류
영구 라이브러리 : SAS 프로그램을 껏다 켜도 살아있는 라이브러리
임시 라이브러리 : SAS 프로그램을 껏다 키면 데이터가 날아가는 라이브러리
사용자 라이브러리 : 사용자가 임의로 지정하는 라이브러리
SASHELP는 디폴트 라이브러리로 영구 라이브러리입니다.
WORK는 임시 라이브러리입니다. 'work.데이터셋'을 작성하고 SAS프로그램을 재실행하면 데이터가 없어지는 라이브러리입니다. 기본적으로 라이브러리를 특별하게 설정하지 않는다면 기본 라이브러리로 work라이브러리가 설정됩니다.
사용자 라이브러리는 경로를 지정한 곳과 연결되있습니다.
libname 라이브러리명 '/folders/myfolders';
F3을 누르면 로그에 라이브러리가 할당된 것을 확인할 수 있습니다.
1번 영역은 옵션영역으로 검색 / 저장 된 파일 불러오기 / 데이터 가져오기 / SAS 작업영역 UI 변경 / 자동실행 코드를 편집할 수 있습니다.
2번 영역은 네비게이션 영역으로
-1) 작업을 간편하게 처리 ( 더블클릭 등으로 코딩이 가능합니다.)
-2) 서버 파일 및 폴더는 내 공유 폴더의 파일 관리
-3) 작업 및 유틸리티는 여러 통계 유틸리티를 제공합니다.
-4) 스닙펫은 자주 사용하는 코드를 제공합니다.
-5) 라이브러리 생성과 설정을 제공
3번 영역은 작업영역으로 코드를 실행하는 영역입니다.
로그 창은 SAS 작업 내용의 흐름과 에러 메시지 등을 보여줍니다.
원하는 결과가 나오지 않았을 경우 로그창에서 에러를 확인할 수 있습니다.
라이브러리, 테이블, 칼럼 등 모든 분야 검색이 가능합니다.
폴더 버튼을 누르면 작업 폴더를 볼 수 있습니다.
점 7개로 되어 있는 메뉴 버튼을 누르게 되면 새로운 작업환경을 설정할 수 있는 탭이 열립니다
새로운 SAS 프로그램을 만들 수 있고 데이터를 가져오기도 가능합니다. 새로운 질의는 테이블간의 관계를 표현한 것이며 새로운 XML은 특수한 목적을 갖는 마크업 언어를 만드는데 사용하는 것 입니다. 뷰 최대화를 시키면 로그, 결과, 출력 데이터 창을 크게 볼 수 있습니다.
왼쪽 창 여러가지 탭들이 있는 것을 보실 수 있습니다.
서버 파일 및 폴더 : 현재 작업하고 있는 폴더 안에 있는 파일들을 한번에 볼 수 있습니다.
라이브러리 : 하나의 작업 폴더 단위
작업 및 유틸리티 : 데이터, 그래프, 통계량 등 다양한 분석을 쉽게 이용가능합니다. 클릭 몇 번으로 시각화 코드와 같은 이미 작성된 코드를 불러올 수 있습니다.
Snippet : 소스코드를 쉽게 작성할 수 있도록 가이드 역할을 합니다.
data 라이브러리.데이터셋; /*새로운 테이블*/
set 라이버리.데이터셋; /*기존 테이블*/
run;
set을 이용해 기존에 있는 테이블을 가져올 수 있습니다.
파일 가져오기 / 내보내기
CSV, EXCEL 등과 같이 파일 형식으로 되어있는 데이터를 데이터 셋으로 가져오는 방법을 알아보고자 합니다.
가져오기는 import함수와 내보낼 때는 export함수를 사용합니다.
CSV 파일 가져오기
FILENAME CSV "csv 파일경로" TERMSTR = CRLF ; /*윈도우 CSV만 해당하는 소스*/
FILENAME CSV "csv 파일 경로" TERMSTR = LF; /*맥, 리눅스 CSV만 해당하는 소스*/
proc import datafile = "csv 파일경로"
out = 라이브러리.데이터셋
dbms = csv
replace;
run;
DATAFILE: 파일이 있는 물리적 주소와 이름입니다.
OUT : 불러온 파일을 저장할 데이터셋을 지정해주는 부분입니다.
DBMS : 불러올 데이터 타입입니다.
REPLACE : 기존에 데이터셋이 있는 경우 덮어씌우겠다는 함수입니다.
데이터셋을 CSV파일로 내보내기
proc export outfile = "폴더경로/파일명.csv";
data = 라이브러리.데이터셋명
dbms = csv
replace;
%let _dataout_mime_type = csv;
%let _dataout_name = 내보내기파일명.csv;
data : 파일로 만들고 데이터셋을 말합니다.
firstobs = 2 : 2번째 관측치로부터 가져 올 수 있습니다.
EXCEL 파일 가져오기
proc import datafile = "excel 파일 경로"
out = 라이브러리.데이터셋
dbms = xlsx
replace;
run;
데이터셋을 EXCEL 파일로 내보내기
proc export outfile = "폴더 경로/파일명.xlsx"
data = 라이브러리.데이터셋명
dbms = xlsx
replace;
proc import datafile ="txt 파일 경로"
out = 라이브러리.데이터셋명
dbms = dlm
replace;
delimiter = '구분자';
getnames = yes;
run;
delimiter : 가져오는 파일에 구분자가 있는 경우에 쓰입니다.
getnames : 가져오는 파일에 첫번째 행을 변수로 지정하고 싶을 경우 yes , 아니면 no로 지정하시거나 getnames 함수를 적지 않으시면 됩니다.
데이터셋을 TEXT 파일로 내보내기
proc export outfile = "폴더경로 / 파일명.xlsx"
data = 라이브러리.데이터셋명
dbms = tab
replace;
구분자가 공백일 경우
data 라이브러리명.데이터셋;
infile "외부파일 경로";
input 변수명 $ 변수명;
run;
data 라이브러리.데이터셋;
length 변수명 $12 변수명 $18;
infile '외부파일 경로' DELIMTER = '구분자';
input 변수명 $ 변수명 ;
run;
INFILE 이전에는 INPUT 명령어를 통해 변수를 지정해줘야 합니다. INFILE은 데이터를 불러오는 기능만 있고 변수명을 만들거나 길이 지정, 데이터를 입력하는 기능은 없기 때문입니다.
ods 저장형식 file = '물리적주소';
proc print data = mysas.data1;
run;
ods 저장형식 close;
ODS : output delivery system
분석 결과를 html, pdf등 다양한 파일 형식으로 내보낼 때 사용합니다.
대표적인 저장형식 종류는 html과 pdf가 있습니다.
Join us for SAS Innovate 2025, our biggest and most exciting global event of the year, in Orlando, FL, from May 6-9.
Lock in the best rate now before the price increases on April 1.