티스토리 뷰
sqldf 패키지
sqldf() 함수 : R에서 SQL문법을 활용하여 데이터 조작
sqldf() 함수는 R에서 SQL을 사용하여 데이터 처리가 가능하게 해줍니다.
> install.packages("sqldf")
> install.packages("googleVis") # Fruits 데이터 셋 사용을 위함
> library(sqldf)
> library(googleVis)
> Fruits
Fruit Year Location Sales Expenses Profit Date
1 Apples 2008 West 98 78 20 2008-12-31
2 Apples 2009 West 111 79 32 2009-12-31
3 Apples 2010 West 89 76 13 2010-12-31
...
> sqldf('SELECT * FROM Fruits')
Fruit Year Location Sales Expenses Profit Date
1 Apples 2008 West 98 78 20 2008-12-31
2 Apples 2009 West 111 79 32 2009-12-31
3 Apples 2010 West 89 76 13 2010-12-31
...
# where절 사용 시 문자열을 묶기 위해 문자열 양옆 (')작은따움표에 (\)역슬래쉬를 사용해주어야 합니다.
> sqldf('select * from Fruits where Year = \'2008\' ')
Fruit Year Location Sales Expenses Profit Date
1 Apples 2008 West 98 78 20 2008-12-31
2 Oranges 2008 East 96 81 15 2008-12-31
3 Bananas 2008 East 85 76 9 2008-12-31
# 혹은 문법에 큰 따움표를 사용해줍니다.
> sqldf("select * from Fruits where Year = '2008' ")
Fruit Year Location Sales Expenses Profit Date
1 Apples 2008 West 98 78 20 2008-12-31
2 Oranges 2008 East 96 81 15 2008-12-31
3 Bananas 2008 East 85 76 9 2008-12-31
# R에서 orderBy()함수는 컬럼별 전체 정렬이 안 되기 때문에, sqldf()함수를 사용해서 SQL문으로 order by를 사용하기도 합니다.
> sqldf('select * from Fruits ORDER BY Sales')
Fruit Year Location Sales Expenses Profit Date
1 Bananas 2010 East 81 71 10 2010-12-31
2 Bananas 2008 East 85 76 9 2008-12-31
...
8 Oranges 2010 East 98 91 7 2010-12-31
9 Apples 2009 West 111 79 32 2009-12-31
> sqldf('select SUM(Sales) from Fruits')
SUM(Sales)
1 845
> sqldf('select AVG(Sales) from Fruits')
AVG(Sales)
1 93.88889
# GROUP BY도 가능
> sqldf('select Fruit, SUM(Sales)
+ FROM Fruits
+ GROUP BY Fruit')
Fruit SUM(Sales)
1 Apples 298
2 Bananas 260
3 Oranges 287
# Sub Query도 가능
> sqldf('select * FROM Fruits
+ WHERE Sales > (SELECT Sales
+ FROM Fruits
+ WHERE profit > 10)')
Fruit Year Location Sales Expenses Profit Date
1 Apples 2009 West 111 79 32 2009-12-31
참고: KIC 캠퍼스 머신러닝기반의 빅데이터분석 양성과정
'R > Process' 카테고리의 다른 글
[R] 데이터 내 NA를 이전 행의 값으로 치환하기 (0) | 2019.01.09 |
---|---|
[R] 교차 테이블로 데이터 구조 변경하기 - melt, dcast 함수 (2) | 2019.01.08 |
[R] plyr 패키지로 그룹(join) 연산 하기 - adply(), ddply() 함수 (0) | 2019.01.08 |
[R] 그룹 연산 - tapply, aggregate 함수 (0) | 2019.01.08 |
[R] 데이터에서 최소(min), 최대(max)를 갖는 색인 출력 - which.min(), which.max() (0) | 2019.01.07 |