패키지 다운
install.packages("tidyverse")
install.packages("rJava")
install.packages("DBI")
install.packages("RMySQL")
library(tidyverse)
library(rJava)
library(DBI)
library(RMySQL)
R과 MySQL 을 연동하기위해서 위의 패키지를 다운로드 한다.
RJava > DBI > RMySQL 순서로 로딩해야 한다.
( DBI, RMySQL 이 RJava 에 의존적이기 때문이다. )
데이터 가져오기
redwine <- read_delim(file="C:\\Users\\User\\Desktop\\rdata\\wine\\winequality-red.csv",delim=";")
# 레드와인
whitewine <- read_delim(file="C:\\Users\\User\\Desktop\\rdata\\wine\\winequality-white.csv",delim=";")
# 화이트와인
# readr의 read_delim()는 read.table()와 비슷한 기능을 한다.
1. 데이터 탐색 ( 수치 )
(1) 데이터 구조 확인
str(redwine) # 레드와인
str(whitewine) # 화이트와인
# ---------------- #
# fixed acidity - 고정산도 -> fixed
# volatile acidity - 휘발성 산도 -> volatile
# citric acid - 구연산 -> citric
# residual sugar - 잔류 설탕 -> sugar
# chlorides - 염화물 -> chlorides
# free sulfur dioxide - 자유 이산화황 -> fsd
# total sulfur dioxide - 총 이산화황 -> tsd
# density - 밀도 -> density
# pH - 산도 - >ph
# sulphates - 황산염 -> sulphates
# alcohol - 알코올 -> alcohol
# Output variable (based on sensory data):
# quality (score between 0 and 10) - 와인의 품질(종속변수) -> quality
# ---------------- #
# 변수명의 변경
# quality(와인품질)은 사람이 매긴 점수이므로 factor로 변환한다.
# quality는 0에서 10까지의 값을 가진다.
# 결측값은 존재하지 않는다.
데이터 구조를 확인한다.
주석 : 변수에 대한 설명
(2) 데이터 변수 이름 변경
# -- 이름 변경 -- #
name <- c("fixed", "volatile", "citric", "sugar", "chlorieds", "fsd", "tsd",
"density", "ph", "sulphates", "alcohol", "quality") # 열의 이름
names(redwine) <- name
names(whitewine) <- name
(3) quality factor 로 변경
# -- quality factor로 변경 -- #
redwine <- redwine %>% mutate(quality = factor(quality))
whitewine <- whitewine %>% mutate(quality = factor(quality))
mutate( )
- mutate(data.frame,이름=조건)
- 데이터프레임에 조건을 만족하는 새로운 열(변수)를 만들거나, 기존의 열을 조건에 맞게 변경할때 사용
- 새로 생성된 칼럼은 별도의 변수로 지정하거나 기존의 데이터에 덮어 씌우지 않는 이상 저장되지 않음
facor( )
- factor(x,levels,ordered)
- 범주형 데이터를 표현하기 위한 데이터 타입
- 범주형 변수가 담을수 있은 값의 목록 = 레벨
- 관측된 값 뿐만 아니라 관측 가능한 값의 레벨도 나열해야 한다.
- x : 펙터로 표현하고자 하는 값 ( 주로 문자열 벡터 )
- levels : 값의 레벨
- ordered : true 이면 순서형, false 면 명목형 ( default 는 명목형 )
- 반환값은 펙터형 데이터 값
(4) 레드와인과 화이트 와인의 기초 통계량 확인
# -- 기초통계량 -- #
summary(redwine)
summary(whitewine)
summary( )
해당 벡터의 최솟값(Min), 최댓값(Max), 중앙값(Mediam), 제1분위수(1st Qu), 제3분위수(3rd Qu), 평균(Mean)을 출력한다.
(5) redwine 데이터, whitewine 데이터 통합
# -- 데이터 통합 -- #
wine <- rbind(redwine %>% mutate(type = "red"), whitewine %>% mutate(type = "white"))
# 두 데이터 프레임을 하나로 만들어 분석한다.
# 두ㅡ 데이터를 하나로 합치며 type으로 구분
wine <- wine %>% mutate(type = factor(type)) # type을 factor로 바꾼다.
name <- c(name,"type")
데이터 분석의 목적
- white와인에서 높은 점수를 주는 속성과 레드와인에서 높은 점수를 주는 속성이 무엇인지 확인하고 점수를 예측하는 모형을 만든다.
- 또 점수와 속성들로 어떤 와인인지 예측한다.
rbind( )
- rbind(데이터프레임1,데이터프레임2)
- 행(row)을 결합시켜준다.
- 열의 속성이나 이름,갯수가 다른경우 오류가 발생한다.
(6) redwine + whitewine = wine 데이터 확인
# -- 기초통계량(wine) -- #
str(wine)
summary(wine)
(6) 데이터베이스(MySQL) 에 wine 데이터 넣기 & 확인
#db connection
con<-dbConnect(MySQL(),user="root",password="root",dbname="rexample")
#db list 출력
dbWriteTable(con, name = "wine", value = wine, overwrite = TRUE, temporary = FALSE)
# 테이블이 임시로 들어감 false 로 하면 데이터가 들어가야 됨
copy_to(con,wine,"wine",overwrite = TRUE, temporary=FALSE)
# copy_to()는 DBI의 dbWriteTable()과 같은 기능을 수행.
# dplyr 패키지에 속한 copy_to()는 성능 개선을 통해 dbWriteTable()보다 빠른 속도를 제공
print(dbListTables(con))
rm(list = setdiff(ls(), c("con"))) # 필요없는 변수 제거
'R을 활용한 데이터 분석' 카테고리의 다른 글
서포터 벡터 머신(SVM) 발표자료 (0) | 2019.07.25 |
---|---|
서포터 벡터 머신(SVM) 개념정리 (0) | 2019.07.23 |