-
sql을 활용하기 위한 라이브러리 sqldfData Analysis/R 패키지 2022. 10. 26. 23:41반응형
Table of Contents
- Introduction
- sqldf 라이브러리
- Reference
Introduction
대용량 데이터가 데이터베이스에 관리되고 있으며, 분석가들도 데이터베이스를 이용한 분석 사례가 늘고 있다. 이에 따라 분석가들에게도 SQL을 다루는 스킬이 반드시 필요한 시대가 되었다. 다만 데이터베이스를 설치하고 테이블을 설계하여 데이터를 적재하는 과정을 익히기 보다 SQL 자체를 익히기에 도움이 될 수 있는 라이브러리가 존재한다. 물론, 해당 라이브러리가 개발됐을 때에는 데이터베이스에서 데이터를 추출할때 SQL을 활용할 수 있도록 설계된 라이브러리이다. 다만, 데이터베이스에 연결하지 않더라도 SQL을 사용할 수 있기 때문에 해당 라이브러리는 R에서 SQL을 익히기에 적합한 라이브러리라고 생각된다.
sqldf 라이브러리
R에서 SQL을 처리하기 위한 라이브러리로 sqldf가 있다. sqldf 함수의 기본 구조는 다음과 같다. DB connector와 user_id, password, host, port 정보를 입력하면 데이터베이스에서 데이터를 불러와서 sql문을 이용하여 데이터 가공이 가능하다.
sqldf(x, stringAsFactors = FALSE, row.names = FALSE, envir = parent.frame(), method = getOption("sqldf.method"), file.format = list(), dbname, drv = getOption("sqldf.driver"), user, password = "", host = "localhost", port, dll = getOption("sqldf.dll"), connection = getOption("sqldf.connection"), verbose = isTRUE(getOption("sqldf.verbose")))
물론, r에 불러온 데이터를 sqldf 함수를 이용해서 쿼리문처럼 처리도 가능하다. iris 데이터를 이용해서 최댓값, 최솟값, 평균, 합계를 계산해보았다.
> install.packages("sqldf") > library(sqldf) > > t_data = iris > colnames(t_data) <- c("S_length", "S_width", "P_length", "P_width", "Species") > head(t_data) S_length S_width P_length P_width Species 1 5.1 3.5 1.4 0.2 setosa 2 4.9 3.0 1.4 0.2 setosa 3 4.7 3.2 1.3 0.2 setosa 4 4.6 3.1 1.5 0.2 setosa 5 5.0 3.6 1.4 0.2 setosa 6 5.4 3.9 1.7 0.4 setosa > > sqldf("Select max(S_length) as SL, + min(S_width) as SW, + avg(P_length) as PL, + sum(P_width) as PW + From t_data + where S_length > 0 + group by Species") SL SW PL PW 1 5.8 2.3 1.462 12.3 2 7.0 2.0 4.260 66.3 3 7.9 2.2 5.552 101.3
Reference
"sqldf", G. Grothendieck, https://cran.r-project.org/web/packages/sqldf/sqldf.pdf
반응형'Data Analysis > R 패키지' 카테고리의 다른 글
상관관계 시각화를 위한 라이브러리 corrgram (0) 2022.11.22 텍스트 시각화를 위한 라이브러리 wordcloud (0) 2022.11.13 특정 기준에 따라 집계하기 위한 라이브러리 doBy (0) 2022.11.06 인터랙티브 웹앱 위한 라이브러리 shiny (2) 2022.10.29 임의 추출을 위한 R 패키지 sampling (0) 2022.10.22