사이트맵  |  Contact Us
 
홈 > SAS Tech & Tip > SAS Programming
[SAS 프로그래밍] TXT 데이터 다루기 (1) 2017.12.19
MYSAS 시샵 1416 0
http://www.mysas.co.kr/SAS_tiptech/a_question.asp?b_no=7570&gotopage=1&con=subject&keyword=&cmd=content&bd_no=05&gubun=

[SAS 프로그래밍] TXT 데이터 다루기 (1)

 

안녕하세요^^ 


이번 시간에는 SAS에서 text(확장자 : .txt) 파일을 다루는 것을 주제로 살펴보도록 하겠습니다.

TXT 파일은 용량도 작고 사전에 설치 되어야 하는 프로그램이 필요하지 않아서 원시데이터파일을 저장할 때 많이 사용되곤 합니다.

 

먼저 txt 형태로 저장되어 있는 데이터를 SAS로 불러오는 방법에 대해 알아보겠습니다.

 


 

▶ 예제데이터  


         

 

txt 파일로 저장되어 있는 3개의 예제 데이터는 숫자와 문자로 이루어진 데이터 입니다. 구분자는 쉼표로 되어있습니다.



 


▶ 하나의 txt 파일 불러오기


▷ 우선 하나의 txt 파일을 불러 오는 방법으로 PROC IMPORT를 사용하는 방법과 DATA STEP에서 INFILE문을 사용하여 불러오는 방법에 대해 알아보겠습니다.


 

coding 1

DATAFILE= : 불러들여올 txt 파일이 있는 위치와 파일 이름, 확장자명을 입력합니다.

OUT= : 생성할 SAS data set 이름을 지정해 줍니다.

 

DBMS= 는 구분자를 입력하는 옵션으로,

여기서 사용된 예제 데이터에서는 구분자가 쉼표이기 때문에 DBMS=DLM으로 입력한 후, DELIMITER= 옵션에 쉼표를 입력하였습니다.

만약 원시 데이터가 탭(TAB)으로 구분되어 있다면 DBMS=TAB으로 설정할 수 있고,

이 외에 다른 문자로 구분되어 있다면 (예를 들어, 느낌표(!)와 같은 구분자)

DBMS=DLM ; DELIMITER=’!’ ; 와 같이 설정 가능합니다.

 

REPLACE 옵션은 덮어쓰기를 하기 위해 사용하였고,

GETNAMES= 옵션으로 원시 데이터에서 첫 행을 변수명으로 사용할 지 여부를 설정할 수 있습니다. 기본 설정값(default)GETNAMES=YES이고 해당 예제 데이터에서는 첫 행에 변수명이 입력되어 있지 않기 때문에 GETNAMES=NO 로 설정하였습니다.

 


 

coding 2

이번에는 DATA step에서 INFILE 문을 사용하는 방법입니다.

 

INFILE에 파일 경로와 데이터 명, 확장자를 입력하고

DSD와 함께 DELIMITER= 옵션을 사용하여 구분자를 설정하며, 구분자 사이에 아무 값이 없는 경우에는 결측으로 처리합니다.

 

MISSOVER 옵션은 결측값이 있더라도 데이터를 끝까지 읽도록 하며,

LRECL 옵션으로 읽어들이는 값의 길이를 지정할 수 있습니다.

 

INFORMAT문으로 각 변수의 포맷을 설정하고

INPUT문에 데이터의 변수명을 입력하면 txt로 입력된 데이터를 SAS로 불러들여올 수 있습니다.

 

   


 


▶ 두 개 이상의 txt 파일 한번에 불러오기


이번에는 한번에 여러 개의 txt 파일을 불러들여오는 방법을 알아보겠습니다.


coding

위에서 사용하였던 DATA STEP에서의 INFILE문을 사용하여 한번에 여러 개의 txt파일을 불러들일 수 있습니다.

 

이전에 사용하였던 코드와 다른점은,

불러오고자 하는 데이터의 저장 경로 및 파일명INFILE문에 지정하는 것 대신에 CARDS (DATALINES); 부분에 입력을 하는 것 입니다.


FLIEVAR= : 기존에 INFILE에 경로를 지정하던 것으로 인식하지 않고 새로 지정한 변수(save_location)의 경로로 인식하기 위해 사용합니다.

END= : 데이터가 마지막 레코드일 때 1로 설정이 되는데, 아래에서 변수명을 입력하기 위한 DO-WHILE문에서 마지막 데이터까지 반복이 되도록 지정하기 위해 사용합니다.

DELIMITER= : 구분자를 지정할 수 있습니다.

 


INPUT문에서 경로 및 파일명을 save_location으로 지정하고

INFORMAT문에서 문자 길이를 지정하여 줍니다.

 

변수명을 입력할 때 DO-WHILE(not readout) 대신에 DO-UNTIL(readout) 도 사용가능합니다.



 


이상으로 한 개 또는 여러 개의 txt파일을 SAS로 불러오는 방법에 대해 PROC IMPORTDATA STEP을 사용하여 알아보았습니다.


감사합니다^^

 

[Reference]

http://support.sas.com/documentation/cdl/en/vsamref/62979/HTML/default/viewer.htm#n17lkqvyze0u1en139xp5voe9wzp.htm


 

 

 
 
 
휴대폰 번호
휴대폰 인증번호
 
 [SAS 프로그래밍] TXT 데이터 다루기 (2)
 [SAS 프로그래밍] ODS OUTPUT 사용하여 결과 출력하기