sqldf 패키지
[ R공부 : sqldf 패키지 ]
R에는 많은 데이터 처리 함수가 있어 데이터를 편리하게 조작할 수 있다는 장점이 있다. 그러나 한편으로는 원하는 형태로 데이터를 만들기 위해서 여러 가지 함수를 알아야 하는 점이 부담이 되기도 한다. sqldf 패키지는 이런 부담을 털어버리는 데 큰 도움이 되며, SQL(Structured Query Language) 문을 사용할 줄 아는 사용자가 더욱 쉽게 데이터를 접근할 수 있게 해준다.
sqldf 패키지는 SQL 명령이 주어지면 자동으로 스키마(Schema)를 생성하고 데이터를 테이블로 로드한 뒤 SQL 문을 수행한다. 그리고 SQL의 실행 결과는 다시 R로 로드된다. 이 작업은 자동으로 이루어지지 때문에 사용자가 힘들여 데이터베이스를 설치하고 환경을 설정하는 작업이 필요없다. 또한, 성능 최적화가 최대한 이루어진 데이터베이스 기술을 활용하게 되어 데이터 처리 성능도 상당히 우수하다.
## sqldf 패키지 설치 및 구동하기
install.packages("sqldf")
library(sqldf)
## sqldf() 함수를 이용하며, iris라는 예제 데이터를 이용하여 실습
## (1) iris의 Species 변수가 가지는 값 중에서 중복을 제거한 후의 목록만 가져오기
sqldf('select distinct "Species" from iris')
# 결과값
Species
1 setosa
2 versicolor
3 virginica
## (2) Species가 setosa 데이터 중에서 Sepal.Length의 평균을 구하기
sqldf('select avg("Sepal.Length") from iris where "Species"="setosa"')
#
결과물
avg("Sepal.Length")
1 5.006
## (3) : Species별로 Species와 Species별로 Sepal.Length의 평균을 가져오기
select('"Species", avg("Sepal.Length") from iris group by "Species"')
# 결과물
Species avg("Sepal.Length")
1 setosa 5.006
2 versicolor 5.936
3 virginica 6.588
sqldf 패키지에서는 디스크를 저장소로 사용한다거나 매번 sqldf() 함수를 수행할 때마다 데이터베이스에 데이터 프레임을 저장했다가 처리하고 삭제하는 대신 한 번 만들어준 데이터를 재사용하는 등의 많은 최적화가 가능하다.
sqldf 패키지는 다양한 저장소를 사용할 수 있으ㅁ 기본 데이터 저장소로 sqlite를 사용한다. 따라서 속도 향상을 위한 인덱스 등을 적절히 사용할 수도 있으며, 데이터베이스 기반 기술을 활용하므로 프로그램의 속도를 매우 빠르게 높일 수 있다