[R] R 7일차

dplyr를 이용한 전처리, ggplot2를 이용한 시각화 연습을 하였다.

잘 정제되어 있는 데이터여서 사실 전처리는 필요가 없었던 것 같다.

최근에 했던 프로젝트 데이터 분석에서는 정말 결측치나 이상치가 엄청 많아 제대로 된 결과가 안 나왔었다는 걸 생각해보면 이번 mpg데이터는 정말 좋은 것 같다.



============================== R ==============================

rm(list=ls())


library("ggplot2")

library("dplyr")


mpg <- ggplot2::mpg

mpg

str(mpg)


qplot(data = mpg, x = drv)


#ggplot사용(산점도). aes배경만들기. geom으로 데이터를 point형태로 입력. x,ylim으로 범위 제한

ggplot(data = mpg, aes(x = displ, y = hwy)) + geom_point()+ xlim(3,6) + ylim(10,30)

#qplot사용(막대그래프). data는 데이터. x 는 data 안에 들어있는 자료로 x축 설정.

qplot(data = mpg, x = drv)

#drv가 4인 y값

length((which(mpg$drv == 4)))


mpg1 <- mpg %>% group_by(drv) %>% summarise(mean_hwy = mean(hwy))

mpg1


#aes에서 -mean_hwy를 했는데 여기서 -가 붙은 이유는 내림차순을 하기 위해서이다.

ggplot(data = mpg1, aes(x= reorder(drv, -mean_hwy),y=mean_hwy)) + geom_col()

#class를 막대그래프로 그리는 방법

ggplot(data = mpg, aes(x= class)) + geom_bar()


#데이터 타입이 tbl_df, tbl, data.frame 3개가 있다.

#따라서 as.data.frame으로 전부 데이터프레임으로 바꿔준다.

econ <- ggplot2::economics

str(econ)

#데이터 프레임으로 바꿔준다.

econ<-as.data.frame(econ)

econ

#꺾은 선 그래프를 출력 

ggplot(data = econ, aes(x = date, y = unemploy)) + geom_line()




mpg <- ggplot2::mpg

#quick plot의 약자로 적합하다 판단된 그래프로 빠르게 그려주는 메서드

qplot(data = mpg, x = drv, y = hwy)

#mpg데이터를 이용해서 aes라는 면에 geom로 point형태 출력해주는 명령문

ggplot(data = mpg, aes(x = displ, y = hwy)) + geom_point()

#위에서 x, y 제한을 통해 원하는 데이터를 더 적합하게 얻는 방법

ggplot(data = mpg, aes(x = displ, y=hwy))+geom_point()+xlim(3,6)+ylim(10,30)


#drv가 4인 데이터 값의 크기

length(which(mpg$drv==4))

#drv가 f인 데이터 값의 크기 

length(which(mpg$drv=="f"))


#mpg 데이터를 drv에 관해 묶고 hwy의 평균을 mean_hwy라는 칼럼을 통해 출력

mpg <- mpg %>% group_by(drv) %>% summarise(mean_hwy = mean(hwy))

mpg <- data.frame(mpg)

#x = drv, y = mean_hwy를 geom_col()로 막대그래프 표현 

ggplot(data = mpg, aes(x= reorder(drv, -mean_hwy), y=mean_hwy))+geom_col()


#bar는 빈도 막대 그래프, col은 평균 막대 그래프

ggplot(data = mpg, aes(x = class)) +geom_bar()


#bins로 폭 너비를 설정 할 수 있다. 작을수록 두껍고 커질수록 얇아진다. 

ggplot(data = mpg, aes(x=hwy))+geom_histogram(bins=20)


#line 함수로 표현 

qplot(data = mpg, x = drv, y = hwy, geom = "line")


economics <- as.data.frame(ggplot2::economics)

head(economics)


#시계열 그래프 

ggplot(data = economics, aes(x = date, y = unemploy))+geom_line()


x <- c(1,3,5,2,4,1,5,6,9,12,13,14,19)

length(x)

sort(x)

median(x)

#사분위수 값을 구하는 quantile()

quantile(x)


qplot(data = mpg, x = drv, y = hwy, geom = "boxplot")

#색상 입히기

qplot(data = mpg, x = drv, y = hwy, geom = "boxplot", color = drv)


#mpg를 data.frame으로 바꾸기

mpg1 <- as.data.frame(ggplot2::mpg) 

ggplot(data = mpg1, aes(x = drv, y = hwy))+geom_boxplot()

#중간값 

median(mpg$hwy)

#사분위수 

quantile(mpg$hwy)

#정렬 

sort(mpg$hwy)



mpg <- ggplot2::mpg

#각 요소값 cty+hwy의 합의 평균을 total에 넣는다. 여기서 새로운 컬럼이 생성된다. 

mpg$total <-(mpg$cty + mpg$ hwy)/2

#요약 

summary(mpg$total)

#히스토그램으로 출력 

hist(mpg$total)


#mpg의 컬럼 total이 20이 넘으면 pass, 안 넘으면 fail로 출력 

ifelse(mpg$total >= 20, "pass","fail")


#mpg에 test라는 컬럼을 추가하는데 추가하는 내용은 위와 같음.

mpg$test <- ifelse(mpg$total >= 20, "pass","fail")

#table로 정량데이터로 만들어 보기 편하게 할 수도 있음.

table(mpg$test)


#여기서 mpg$test가 아닌 test로 해도 같은 결과를 얻을 수 있다.

#bar는 빈도, col은 평균 막대 그래프.

ggplot(data = mpg, aes(x=mpg$test))+geom_bar()


#grade라는 컬럼을 추가하여 A,B,C를 나눠준다.

mpg$grade <- ifelse(mpg$total >= 30, "A", ifelse(mpg$total >= 20,"B","C"))

table(mpg$grade)


#둘 다 같은 값을 표현

qplot(data = mpg, x = grade)

ggplot(data = mpg, aes(x = grade)) + geom_bar()


============================== R ==============================

'프로그래밍 > Python, R 프로그래밍' 카테고리의 다른 글

[R] R 8일차  (0) 2018.05.21
[Python] Python 7일차  (0) 2018.05.18
[Python] Python 6일차  (0) 2018.05.17
[R] R 6일차  (0) 2018.05.17
[Python] Python 5일차  (0) 2018.05.16

+ Recent posts