더북(TheBook)

02 | SQL을 사용한 데이터 처리

R에는 많은 데이터 처리 함수가 있어 데이터를 편리하게 조작할 수 있다는 장점이 있다. 그러나 한편으로는 원하는 형태로 데이터를 만들기 위해서 여러 가지 함수를 알아야 하는 점이 부담이 되기도 한다. sqldf[2]는 이런 부담을 털어버리는 데 큰 도움이 되는 패키지로, SQL 문을 사용할 줄 아는 사용자가 더욱 쉽게 데이터를 접근할 수 있게 해준다.

sqldf는 SQL 명령이 주어지면 자동으로 스키마를 생성하고 데이터를 테이블로 로드한 뒤 SQL 문을 수행한다. 그리고 SQL의 실행 결과는 다시 R로 로드된다. 이 작업은 자동으로 이루어지기 때문에 사용자가 힘들여 데이터베이스를 설치하고 환경을 설정하는 작업이 필요 없다. 또한, 성능 최적화가 최대한 이루어진 데이터베이스 기술을 활용하게 되어 데이터 처리 성능도 상당히 우수하다.

sqldf 패키지의 메인 함수는 sqldf( )다. 다음 표에 함수의 프로토타입을 설명하였다.

표 5-2 sqldf( ) 함수

sqldf::sqldf : 데이터 프레임에 SQL SELECT 질의를 수행한다.

sqldf::sqldf(
  x,                     # SQL SELECT 
  stringsAsFactors=FALSE # 문자열을 팩터로 반환할지 또는 문자열로 반환할지 여부
)

반환 값은 데이터 프레임이다.

sqldf를 사용하려면 다음과 같이 패키지를 설치한다.1

> install.packages("sqldf")
> library(sqldf)

sqldf( )를 사용해 아이리스 데이터를 살펴보자. iris에는 세 종류의 붓꽃 종류가 저장되어 있으며 붓꽃 종은 Species 컬럼에 저장되어 있다. 이를 확인해보자.

> sqldf("select distinct Species from iris")
Loading required package: tcltk
     Species
1     setosa
2 versicolor
3  virginica

1 패키지를 처음 사용하는 경우 설치를 위해 수행해야 하는 install.packages( ), R 세션을 시작한 뒤 패키지를 사용하기 위해 수행하는 library( ) 명령은 모든 패키지에 동일하다. 이후의 절에서 이 명령들이 언급되어 있지 않더라도 패키지 이름을 넣어 이 두 명령을 수행하기 바란다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.