[SAS] 데이터 불러오기 및 저장하기 (내보내기) - PROC IMPORT, PROC EXPORT
불러오기
1. '불러오기 마법사 (Import Wizard)'를 이용하는 방법
2. 코드 (PROC IMPORT)를 사용하는 방법 (추천)
저장하기 (내보내기)
1. '내보내기 마법사 (Export Wizard)'를 이용하는 방법
2. 코드 (PROC EXPORT)를 사용하는 방법 (추천)
불러오기
SAS에서 불러올 수 있는 파일의 종류는 굉장히 많지만 불러오는 방법은 대체적으로 대동소이하다.
두 가지 방법으로 데이터를 불러오는 방법에 대해 설명하고자 한다.
1. '불러오기 마법사 (Import Wizard)'를 이용하는 방법
SAS를 이용할 때 데이터를 불러오는 방법과 저장하는 방법을 알아보겠다.
*실습용 데이터는 아래 링크를 클릭하면 다운로드할 수 있습니다
2022.08.04 - [공지사항 및 소개] - 분석용 데이터 (update 22.08.04) - 기술 통계
1) 파일 > 데이터 가져오기 (I) 클릭하기
2) 파일 종류 선택하기
엑셀 파일을 불러올 거면 설정을 바꾸지 않는다.
CSV 파일을 가져오는 경우 드롭박스를 선택하여 CSV를 선택한다.
"Next>"를 눌러 다음 단계로 넘어간다.
3) 파일 선택하기
"Browse.."버튼을 누르면 다음과 같은 창이 뜬다
그런데 파일 위치에 찾아가도 보통 파일이 보이지 않는다. 왜냐하면 SAS는 엑셀 확장자 중 "xls 파일"을 기본값으로 설정하고 있는데, 요새 엑셀은 웬만하면 "xlsx 파일"을 사용하기 때문이다. 따라서 파일 형식 드롭박스를 눌러 "xlsx 파일"을 선택하면 파일이 보인다.
파일 선택 후 "열기 (O)"버튼을 누른다.
"OK"버튼을 누른다.
4) 시트 (Sheet) 선택하기
해당 엑셀 파일에 여러 개의 sheet가 있는 경우 원하는 sheet를 고른다.
"Options.."버튼은 평소에 거의 쓸 일이 없다. "Options.."버튼을 누르면 다음과 같은 창이 뜨는데
파일의 첫 행이 데이터명 (Age, ALT 등...)인 경우 첫 번째 체크박스는 반드시 선택되어 있어야 한다. 데이터명이 없는 데이터 파일인 경우 체크박스를 해제한다. 나머지는 변수의 포맷에 관한 것인데, 포맷 변경은 일일이 하는 것이 훨씬 편하므로 이 옵션 창에서는 아무것도 건들지 않는다.
"OK"버튼을 누르고 "Next>"버튼을 누른다.
4) 라이브러리 및 데이터명을 지정한다.
SAS에는 라이브러리라는 개념이 있다. 이에 관한 설명은 아래 링크에서 확인할 수 있다.
-라이브러리를 지정하지 않을 경우 기본값인 "WORK"에서 바꾸지 않으면 되고, 원하는 라이브러리에 데이터를 위치시키고 싶을 경우 원하는 라이브러리를 선택한다.
-원하는 데이터명을 "Member:"에 입력한다. 필자는 "Patient"라고 입력하였다.
"Next>"버튼을 눌러 다음으로 넘어간다.
이 창은 지금까지의 과정을 저장하겠냐고 묻는 것인데, 불러오기 마법사 (Import wizard)는 앞으로 쓰지 않을 것이므로 개의치 않는다. 그저 "Finish"버튼을 눌러 마무리한다.
2. 코드 (PROC IMPORT)를 사용하는 방법
위 방법은 몇 번의 클릭으로 마무리할 수 있으므로 직관적이고 간편해보이나, 생각보다 시간이 많이 들고 불편하며, 무엇보다 오류가 잘 생긴다. 단례로, 변수 이름이 잘못 불러와지는 경우가 매우 많다. 따라서 위 방법은 추천하지 않으며 코드를 쓰는 방법을 추천한다.
코드 사용하기에 앞서 먼저 라이브러리를 지정한다.
(라이브러리 지정 방법은 다음 링크에서 확인할 수 있다. 2022.08.05 - [통계 프로그램 사용 방법/SAS] - [SAS] 라이브러리 만들기 - LIBNAME)
LIBNAME hong "C:/Users/User/Documents/Tistory_blog";
기본적인 PROC IMPORT 코드는 다음과 같다.
PROC IMPORT
DATAFILE="C:\Users\user\Documents\Tistory_blog\Data.xlsx"
DBMS=EXCEL
OUT=hong.df
REPLACE;
RUN;
PROC IMPORT: 파일을 불러오는 코드를 작성하겠다.
DATAFILE="C:\Users\user\Documents\Tistory_blog\Data.xlsx" : 문서의 "Tistory_blog" 폴더에 있는 "Data.xlsx"파일을 가져오라.
DBMS=EXCEL : 데이터 종류 (DBMS, DataBase Management System)는 엑셀 파일이다.
- CSV파일은 "EXCEL"대신에 "CSV"를 쓰면 되고, tab으로 구분되어있는 파일은 "TAB"을 쓰면 된다.
OUT=hong.df : "hong" 이라는 라이브러리에 저장하되 데이터 파일 이름은 "df"로 한다.
REPLACE: 혹시 "hong"이라는 라이브러리에 이미 이름이 "df"인 데이터 파일이 있으면 덮어쓴다. (REPLACE 옵션을 쓰지 않으면 SAS는 기본적으로 덮어쓰지 않는다.)
- 라이브러리의 개념이 어색한 독자는 다음 글을 참고하기 바란다.
2022.08.05 - [통계 프로그램 사용 팁] - [SAS] 라이브러리 만들기
라이브러리에 데이터 파일을 불러오면 다음부터는 PROC IMPORT를 통해 엑셀 파일을 다시 불러올 필요가 없다. 라이브러리 지정만 해주면 "hong.df"라는 데이터 파일은 언제든지 쓸 수 있다. 평소에는 큰 이득이 되는지 모르겠지만, 데이터 파일이 너무 크거나, 데이터 변환을 하는 경우에는 큰 이득이 된다.
라이브러리를 지정한 문서 내 "Tistory_blog"폴더에 가면 "df.sas7bdat"라는 파일이 생긴 것을 확인할 수 있다.
혹은 SAS 내 탐색기에서 "라이브러리 - Hong"으로 들어가면 Df파일이 존재함을 확인할 수도 있다.
몇개의 옵션을 더 넣을 수도 있다.
PROC IMPORT
DATAFILE="C:\Users\user\Documents\Tistory_blog\Data.xlsx"
DBMS=EXCEL
OUT=hong.df
REPLACE;
SHEET="Sheet1$";
RANGE="Sheet1$A1:B10";
GETNAMES=YES;
RUN;
SHEET="Sheet1$":엑셀 파일에 여러 개의 시트가 있을 경우 "Sheet1"을 불러오도록 지정한다.
- CSV 파일은 SHEET구분이 없으므로 지정할 필요가 없다.
RANGE="Sheet1$A1:B10":시트 중 불러올 영역을 "Sheet1의 A1 - B10"으로 지정한다. 만약 SHEET구문과 상충되면 (예, SHEET="Sheet2$"; RANGE="Sheet1$A1:B10") SHEET구문은 무시되고 RANGE에 따라 데이터를 불러온다.
GETNAMES=YES: 첫 번째 행을 변수명으로 불러오라는 옵션이다.
처음엔 코드란 것이 많이 어색하고 불편하겠지만, 익숙해지면 불러오기 마법사 (Import wizard)는 사용하지 않게 될 것이다.
저장하기 (내보내기)
이번엔 데이터를 내보내는 방법을 알아보도록 하겠다.
1. '내보내기 마법사 (Export Wizard)'를 이용하는 방법
앞서 불러오기 마법사를 이용해 임시 라이브러리 (WORK)에 저장해놓은 "PATIENT"라는 데이터 파일을 내보내기로 한다.
1) 파일 > 데이터 내보내기 (R) 클릭하기
2) 라이브러리와 내보낼 데이터 파일 선택하기
라이브러리는 WORK, 데이터 파일 (Member)은 PATIENT를 선택하고 "Next >" 버튼을 누른다.
3) 저장될 파일의 포맷 선택하기
엑셀 파일, CSV파일, SPSS파일 등 여러 포맷으로 반출이 가능하다. 이번에는 엑셀 파일로 내보내기를 한다. "Next >" 버튼을 누른다.
4) 저장될 위치와 파일의 이름 지정하기
"Browse..." 버튼을 누른다.
저장하고자 하는 곳의 위치를 찾아 들어가고, 파일 이름일 작성하고, 원하는 파일 형식을 작성한다. 호환성을 위해 ".xlsx" 형식을 추천한다.
"OK"버튼을 누른다.
5) 완료
여기에서 바로 "Finish"버튼을 누르면 내보내기 과정은 끝이 난다.
하지만, 내보내진 엑셀 파일의 시트 이름을 지정하고 싶을 때가 있는데, 이때는 다음 그림과 같이
시트 이름을 지정하고 "Next >"버튼을 누르면 된다.
불러오기 마법사에서 처럼 지금까지의 과정을 PROC EXPORT로 저장하는 것인데, 앞으로 쓰지 않을 방법이므로 무시한다.
2. 코드 (PROC EXPORT)를 사용하는 방법
PROC IMPORT에서와 같이 마법사 보다는 코드를 추천한다.
기본적인 PROC EXPORT 코드는 다음과 같다.
PROC EXPORT
DATA=hong.df
OUTFILE="C:\Users\user\Documents\Tistory_blog\Output.xlsx"
DBMS=EXCEL
REPLACE;
RUN;
PROC EXPORT: 파일을 내보내는 코드를 작성하겠다.
DATA=hong.df: 추출할 파일은 "hong" 이라는 라이브러리에 있는 데이터 파일 "df"이다.
OUTFILE="C:\Users\user\Documents\Tistory_blog\Output.xlsx" : 문서의 "Tistory_blog" 폴더에 있는 "Export.xlsx"파일로 저장한다.
DBMS=EXCEL : 데이터 종류 (DBMS, DataBase Management System)는 엑셀 파일이다.
- CSV파일은 "EXCEL"대신에 "CSV"를 쓰면 되고, tab으로 구분되어있는 파일은 "TAB"을 쓰면 된다.
REPLACE: 혹시 "C:\Users\user\Documents\Tistory_blog\"에 이미 이름이 "Export.xlsx"인 파일이 있으면 덮어쓴다.
만약 CSV파일로 내보내고 싶다면 파일명과 DBMS를 다음과 같이 CSV로 바꾸어주면 된다.
PROC EXPORT
DATA=hong.df
OUTFILE="C:\Users\user\Documents\Tistory_blog\Output.csv"
DBMS=CSV
REPLACE;
RUN;
SAS 데이터 불러오기 및 저장하기 정복 완료!
작성일: 2022.08.05.
최종 수정일: 2022.08.08.
이용 프로그램: SAS v9.4
운영체제: Windows 10
'통계 프로그램 사용 방법 > SAS' 카테고리의 다른 글
[SAS] 변수 계산 (논리 연산) - DATA, SET, IF, ELSE IF, ELSE, AND, OR (0) | 2022.10.06 |
---|---|
[SAS] 변수 계산 (산술 연산) - DATA, SET (1) | 2022.10.06 |
[SAS] SAS 데이터 (.sas7bdat) 불러오기 (0) | 2022.08.10 |
[SAS] 주석 처리 및 프로그램 특징 (0) | 2022.08.05 |
[SAS] 라이브러리 만들기 - LIBNAME (0) | 2022.08.05 |