데이터 R지?

Ch12_사람들은 어디로 많이 갔을까?

jsBae 2022. 4. 25. 18:51
1. SK Big Data Hub
2. 데이터 수집
3. 데이터 살펴보기
4. 데이터 정제하기
5. 데이터 시각화하기

1. SK Big Data Hub

SK Data Hub (https://www.bigdatahub.co.kr/index.do

2. 데이터 수집

FLT_SEOUL_03MONTH.xlsx


library(readxl)
data <- read_excel("FLT_SEOUL_03MONTH.xlsx")

또는
install.packages("openxlsx")
library(openxlsx)

data <- read.xlsx("FLT_SEOUL_03MONTH.xlsx", colnames=T, sheet=1)

View(data)

3. 데이터 살펴보기

dim(data)
str(data)

table(data$시)

#서울시 변수 삭제 
data <- data[-5]

#변수명 변경
colnames(data) <- c("Date","Time","Age","Sex","District","FLT_Popul")

4. 데이터 정제하기

#변수형 변경

#factor 형변경
data[c(2,3,4,5)] <- lapply(data[c(2,3,4,5)], as.factor)

#numeric
data$FLT_Popul <- as.numeric(data$FLT_Popul)

#date 
data$Date <- as.Date(data$Date, format = "%Y%m%d")
str(data)

#summary(data)

summary(data)


5. 데이터 시각화하기

library(ggplot2)

ggplot(data, aes(District, FLT_Popul)) +
    geom_bar(stat = "identity")+
    labs(title = "서울시 행정구역별 유동인구 수", x="행정구역", y="유동인구(합)")

#reorder() 함수 사용하여 정렬

  • Reorder() 함수의 첫번째 인수에는 정렬대상, 두번째 인수에는 어떤 값에 의해 정렬할지 설정, (-) 연산자와 함께 작성하여 내림차순 정렬함.
  • 색 채우기 위해 fill 인수에 값 할당함
  • 범례 보이지 않게 하기 위해, geom_bar() 함수에 show.legend = FALSE 인수 추가 함. 
ggplot(data, aes(x=reorder(District, -FLT_Popul), y=FLT_Popul, fill=District)) +
     geom_bar(stat = "identity", show.legend = F)+
     labs(title = "서울시 행정구역별 유동인구 수", x="행정구역", y="유동인구(합)")+
     theme(axis.text.x = element_text(angle = 45, size=8))

theme() 함수 – 레이블 변경, 그래프 테마 변경, 그래프 제목, 폰트, 배경색, 범례 꾸미기 등

  • x축의 텍스트를 변경하고자 한다면, theme() 함수 안에 axis.text.x 인수를 element_text() 함수로 변경해 주어야 함.
  • element_text() 함수 안에는 텍스트의 색, 사이즈, 각도, 텍스트 굵기, 여백 등 설정 가능
?theme

 

ggplot2에서 점 그래프 표현 위해서는 geom_point() 함수를 사용

ggplot(data, aes(Date, FLT_Popul, color=Age)) +
     geom_point()

#facet_grid() 측면그리드 분활 그래프

ggplot(data, aes(Date, FLT_Popul, color=Age)) +
    geom_point() +
    facet_grid(cols = vars(District))
ggplot(data.new, aes(x=Date, y=FLT_Popul, color=Age))+
    geom_point(size=2, alpha=0.7) +
    facet_grid(cols = vars(District))+
    labs(title = "강남구, 송파구 유동인구 변화", x="2019년 3월", y="유동인구") +
    theme(axis.text.x = element_text(angle = 45, size =7 ))

측면(facets)으로 나누어 그리기

#facet_wrap()로 일차원 측면 그래프 그리기

  • ~ 은 R에서 수식을 표현할 때 사용되는데, facet_wrap() 함수는 수식을 인수로 입력받는다. 
  • facet_wrap() 함수는 ~ 우변에 기술된 변수를 측면(facets)으로 하여 데이터를 나누어 그래프를 그린다. 
ggplot(data.new, aes(x=Date, y=FLT_Popul, color=Age))+
    geom_point(size=2, alpha=0.7) +
    facet_grid(~District)+
    labs(title = "강남구, 송파구 유동인구 변화", x="2019년 3월", y="유동인구") +
    theme(axis.text.x = element_text(angle = 45, size =7 ))
ggplot(data.new, aes(x=Date, y=FLT_Popul, color=Age))+
    geom_point(size=2, alpha=0.7) +
    facet_grid(~Sex + District)+
    labs(title = "강남구, 송파구 유동인구 변화", x="2019년 3월", y="유동인구") +
    theme(axis.text.x = element_text(angle = 45, size =7 ))

#facet_grid()로 이차원 측면 그래프 그리기

ggplot(data.new, aes(x=Date, y=FLT_Popul, color=Age))+
    geom_point(size=2, alpha=0.7) +
    facet_grid(Sex~Distric

  • facet_wrap() 함수와 마찬가지로 수식의 좌변과 우변에 +로 하나 이상의 변수를 지정할 수 있다.
728x90
반응형