IT

R 프로그래밍 - readLines()와 read.table()의 차이

유병혁 2015. 10. 17. 11:19

R 프로그래밍에서 readLines()와 read.table()의 차이를 간략히 살펴보도록 하겠습니다.

아래와 같이 test.txt 파일이 있습니다.

 

먼저, 현재 사용 중인 디렉토리를 확인하기 위해 getwd()를 입력해 보겠습니다. 

 

현재 test.tx 파일은 C:/examples 폴더에 위치하고 있는데요, setwd()를 통해 디렉토리를 변경합니다.

 

이제 readLines()와 read.table()의 차이를 비교해 보도록 하겠습니다.

readLines()와 read.table()은 모두 텍스트 파일을 읽어 들이는 기능을 제공합니다.

 

text <- readLines("text.txt)는 위 텍스트 파일을 읽어들여 text 변수에 지정하는 의미를 갖습니다.

여기서 '<-'는 R에서 값 할당을 위해 표준으로 사용하는 기호인데요, '='를 사용할 수도 있으나 동작하지 않는 경우가 있으므로 추천하지 않습니다.

 

readLines()은 각 줄을 문자열로 다루므로, 반환값은 문자열로 이뤄진 '문자 형식의 벡터'가 됩니다.

즉, 여기서 text 벡터의 원소 하나는 한 줄을 읽은 결과로, 여기서는 3개의 원소가 생성됩니다.

 

head()는 파일이 제대로 읽혔는지 체크할 수 있는 함수로써 head(text, 3)은 맨 위쪽 3개 원소를 표시하라는 의미입니다.  

 

자, 이번에는 test.txt 파일을 read.table()을 통해 읽어오도록 하겠습니다.

 

text <- read.table("test.txt", header=T,sep="\t")

 

read.table()은 문자 형식의 벡터가 아닌 표 형태로 텍스트 파일을 읽어오는데요,

표는 보통 첫 줄에 헤더 필드(header field)가 위치하므로 F, T를 통해 구분할 수 있습니다.

sep는 구분자(separator)가 되겠는데요, 여기서는 '\t'이기 때문에 위와 같이 입력하였습니다. 

 

위에서 작성된 R 코드는 아래와 같습니다.
 
# 현재 사용 중인 디렉토리 확인
getwd()
 
# 현재 사용 중인 디렉토리 변경 
setwd("C:/examples")
 
# readLines() 문자 형식의 벡터 읽기
text <- readLines("test.txt")
 
# head() 헤드 표시
head(text, 3)
 
# read.table() 표 읽기
text <- read.table("test.txt", header=F,sep="\t")

Created by Pretty R at inside-R.org