Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

R과sql비교 퀵하게보기

1,678 views

Published on

  • Be the first to comment

R과sql비교 퀵하게보기

  1. 1. R 과 SQL 비교 퀵하게 보기 박승현 ppillip@gmail.com (http://digveloper.ppillip.com)
  2. 2. 1. 준비물  1.1 컴퓨터 - hardware=mac-air / os=OSX  1.2 R - 최신판  1.3 RStudio - 최신판  1.4 로딩할 CSV - hw1_data.csv
  3. 3. 2. 목표  csv 화일을 로딩해서 R 에 넣는다 . 그리고 숙제를 해낸다 .
  4. 4. 2. 목표  자 .. 그럼 숙제가 먼데 ?
  5. 5. 3. 숙제는 ? (todos)  데이터를 올리고  질의에 답하기 . todo01. Ozone 의 평균값을 구해라 ( 단 ,NA 는 제거 ) todo02. Ozone 이 31 보다 크고 온도가 90 보다 클때 Solar.R 의 평균을 구하기 todo03. 6 월의 평균 Temp 를 구하기 todo04. 5 월의 Ozone 최고치를 구하기
  6. 6. 4. 시작  todo00. 데이터 먼저 올리자 . # 일단 작업 공간 부터 바꾸고  > setwd("/Users/ppillip/study/coursera/Comp uting_for_Data_Analysis")
  7. 7. 4. 시작  todo00. 데이터 먼저 올리자 . # 화일을 올리기  > dfrm <- read.csv("hw1_data.csv")
  8. 8. 4. 시작  todo00. 데이터 먼저 올리자 . # 헉 .. 테이블 하고 똑같이 생겼다 . ( 이건 RStudio 캡쳐 )
  9. 9. 4. 시작 - 숙제 하기  # todo01. Ozone 의 평균값을 구해라 ( 단 ,NA 는 제거 )  SQL select avg(Qzone) from dfrm where Qzone is not null;  R mean( subset(dfrm, Ozone>31 & Temp>90 ,select=Solar.R,drop=T) ) # mean( subset(dfrm, Ozone>31 & Temp>90 ,select=Solar.R ) ) ( 안됨 ) # subset 은 data.frame 을 리턴함
  10. 10. 4. 시작 - 숙제 하기  # todo02. Ozone 이 31 보다 크고 온도가 90 보다 클때 Solar.R 의 평균을 구 하기  SQL -> select avg(Solar.R) from dfrm where Ozone>31 and Temp>90 and Solar.R is not null;  R -> mean( subset(read.csv("hw1_data.csv"), Ozone>31 & Temp>90 , select=Solar.R,drop=T) )
  11. 11. 4. 시작 - 숙제 하기  # todo03. 6 월의 평균 Temp 를 구하기  SQL select avg(Temp) from dfrm where Month=6 ;  R mean( subset(read.csv("hw1_data.csv"), Month==6 ,select=Temp,drop=T) )
  12. 12. 4. 시작 - 숙제 하기  # todo04. 5 월의 Ozone 최고치를 구하기  SQL select max(Temp) from dfrm where Month=5 and Ozone is not null ;  R max( subset( read.csv("hw1_data.csv") , Month==5 & !is.na(Ozone) , select=Ozone,drop=T ) )
  13. 13. 5. 결론 -  비교  1. SQL Query projection data match ========== ===== ====================== select 컬럼 4, 컬럼 5 from dfrm where 컬럼 1 > 20 and 컬럼 2 > 30  2. R - 1 data match projection ===== =================== =========== subset (dfrm, Ozone>31 & Temp>90 , select=Solar.R )  3. R - 2 data match projection ==== ============================= ========== dfrm [ dfrm$Ozone>31 & dfrm$Temp>90 ,c("Solar.R")]
  14. 14. 참고  - R 을 이용한 데이터 분석 실무 http://r4pda.co.kr/  - r-bloggers.com http://www.r-bloggers.com/select-operations-on-r-data-frames/  - RStudio 메뉴얼
  15. 15. 6. 부록 ( 개발자에게 )  drop=T 를 이용해서 -> group_concat 처럼 ? 차트데이터 보내기  rbind 를 이용해서 case when ( oracle decode ) 대신 해보기  게시판 페이징 dfrm[566:570,c('sequence','start','end')]

×