5. 3. 숙제는 ? (todos)
데이터를 올리고
질의에 답하기 .
todo01. Ozone 의 평균값을 구해라 ( 단 ,NA 는 제거 )
todo02. Ozone 이 31 보다 크고 온도가 90 보다 클때
Solar.R 의 평균을 구하기
todo03. 6 월의 평균 Temp 를 구하기
todo04. 5 월의 Ozone 최고치를 구하기
6. 4. 시작
todo00. 데이터 먼저 올리자 .
# 일단 작업 공간 부터 바꾸고
> setwd("/Users/ppillip/study/coursera/Comp
uting_for_Data_Analysis")
7. 4. 시작
todo00. 데이터 먼저 올리자 .
# 화일을 올리기
> dfrm <- read.csv("hw1_data.csv")
8. 4. 시작
todo00. 데이터 먼저 올리자 .
# 헉 .. 테이블 하고 똑같이 생겼다 . ( 이건 RStudio 캡쳐 )
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. 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. 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. 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. 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. 참고
- R 을 이용한 데이터 분석 실무
http://r4pda.co.kr/
- r-bloggers.com
http://www.r-bloggers.com/select-operations-on-r-data-frames/
- RStudio 메뉴얼
15. 6. 부록 ( 개발자에게 )
drop=T 를 이용해서
-> group_concat 처럼 ? 차트데이터 보내기
rbind 를 이용해서 case when ( oracle decode ) 대신 해보기
게시판 페이징
dfrm[566:570,c('sequence','start','end')]