일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 데이터분석
- R프로그래밍
- word2vec
- R그래프
- 빅데이터처리
- CNN
- AI
- 머신러닝
- 데이터시각화
- Deeplearning
- 데이터처리
- 하둡
- Hadoop
- 기계학습
- 딥러닝
- pandas
- 그래프시각화
- lstm
- ggplot
- r
- HIVE
- SQL
- R시각화
- 주가예측
- Python
- NLP
- 빅데이터
- 그래프
- 데이터
- 자연어처리
- Today
- Total
욱이의 냉철한 공부
[R, 전처리, 패키지] sqldf 패키지 이용하여 R에서 SQL을 사용하자 본문
SQL에 익숙한 분들은,
R에서 데이터 처리를 위하여 새로운 함수들을 쓰는 것 보다
sqldf 패키지를 사용하여 SQL를 R에서 사용하여 데이터 처리를 하는 것이 편할 것이다.
그럼 어떻게 해야 하는지 알아보자~!
1. sqldf 패키지 다운받기.
install.packages("sqldf")
library(sqldf)
2. 기존 데이터 셋에 있는 Fruits 데이터로 실습.
- Fruits는 총 9행의 데이터 가지고 있다.
- Fruits 전체 데이터 가져오기
sqldf( 'SELECT * FROM Fruits')
- Fruit 값이 Oranges인 데이터 모두 조회하기 : WHERE 사용
sqldf( 'SELECT * FROM Fruits WHERE Fruit=\'Oranges\' ')
ORACLE에서와 차이는 WHERE절 안에 찾는 값의 입력 형식이다. => \'Oranges\'
- 출력되는 행 수 제한 : limit 사용
sqldf(' SELECT * FROM Fruits limit 2' )
- 정렬하기 : ORDER BY 사용
sqldf(' SELECT * FROM Fruits ORDER BY Profit' )
Profit 기준으로 오름차순 정렬
- 그룹함수 : 합계 SUM, 최대 MAX, 최소 MIN, 평균 AVG
sqldf(' SELECT SUM(Profit) FROM Fruits ')
sqldf(' SELECT max(Profit) FROM Fruits ')
sqldf(' SELECT min(Profit) FROM Fruits ')
sqldf(' SELECT AVG(Profit) FROM Fruits ')
sqldf(' SELECT Fruit , SUM(profit) FROM Fruits GROUP BY Fruit')
profit 대상
- 서브쿼리 : 단일 행, 여러 행
단일 행
sqldf(' SELECT * FROM Fruits WHERE Sales > (SELECT Sales FROM Fruits WHERE profit=15) ')
여러 행
sqldf(' SELECT * FROM Fruits WHERE Sales in( SELECT Sales FROM Fruits WHERE profit>15) ')
- JOIN : WHERE 사용, JOIN과 ON 사용, JOIN과 USING 사용
friend와 regioninfo라는 임의의 데이터프레임을 만들어서 실행해봤다.
WHERE 사용 : sqldf(' SELECT f.name , r.region FROM friend f , regioninfo r WHERE f.id=r.id ')
JOIN과 ON 사용 : sqldf(' SELECT f.name , r.region FROM friend f JOIN regioninfo r ON f.id=r.id ')
JOIN과 USING 사용 : sqldf(' SELECT f.name , r.region FROM friend f LEFT JOIN regioninfo r USING (id)')
- DML : UPDATE, DELETE
UPDATE : sqldf(c('UPDATE Fruits SET Sales=100 WHERE Fruit=\'Oranges\' AND Sales=93', 'SELECT * FROM Fruits'))
=> 6번 행의 Sales가 93에서 100으로 변경되었다는 것을 확인 할 수 있다.
DELETE : sqldf(c('DELETE FROM Fruits WHERE Fruit=\'Oranges\' AND Sales=93', 'SELECT * FROM Fruits') )
=> 기존의 6번 행이 삭제되었다는 것을 확인 할 수 있다.
'데이터분석 > R' 카테고리의 다른 글
[R, 정리] 파일(csv, txt) 가져오기 (0) | 2021.06.22 |
---|---|
[R, 정리] 데이터 타입 이해하기 (0) | 2021.06.22 |
[R, 정리] 기본 명령어 이해하기 (0) | 2021.06.22 |
[R, 데이터 실생활 응용] R로 카카오톡 활동량 분석하여 시각화. (0) | 2021.06.22 |
[R, 정리] R의 특징과 장점, 사용이유 (0) | 2021.06.22 |