📊 R 데이터 분석

데이터 분석을 위한 R수업 <1차시 : ggplot2>

해랑(Sea-wave) 2024. 10. 3.
반응형

수업준비

- 2시 30분에 수업 장소 도착하기
- 일주일에 4일 공부 권장. 매일 30분씩 하기
- 코드는 외우는게 아님
- 데이터 분석은 나만의 목표가 있어야 함.

 

나의 경우에는 시각화가 포인트.
(이런 그래프 하나 그려보고 싶어요. 할 필요가 있음.)

아래 책의 인포그래픽에서 많은 영감을 받았다.


https://www.yes24.com/Product/Goods/6231277

 

정보는 아름답다 - 예스24

아인슈타인은 ‘사고 실험’이라는 시각적 사고를 통해 상대성 이론을 발견했고, 다빈치는 이미지를 중심으로 관찰과 분석을 하여 통합적 관점을 이룩할 수 있었다. 얼마 전 타계한 스티브 잡...

www.yes24.com

 

통계나 데이터 분석도 [적정기술]에서 만족해야 함.
나만의 적정기술을 찾아야함. A부터 Z까지 배울 생각을 하면 안됨.

엑셀을 기본으로 잘 다뤄야 함.
엑셀은 처리해야하는게 10만개를 넘으면 속도가 느림
SQL은 그래프를 못그리는 단점이 있음

R을 할 필요가 있음


1. 공부하는 방법 배우기 = 외우지 않고 아카이빙 하는 것)
2. 엑셀~SQL~R :
3. 1년에 책 한권을 세번 보면 기초라 할 수 없음
4. 혼자 공부할 때 생기는 고립감 해소하기
5. 어려운 부분을 함께 해결하며 성취감 공유하기
6. 온라인 스터디는 어느날 갑자기 소식이 끊긴다던가 그렇게 됨.
7. 오프라인이 훨씬 효과가 좋음

코드의 재현성이 있어서, 이해를 못해도 실행할 수 있음.
완결성 있는 코드를 확보하고, 실행하고, 이해하고, 코드의 상수와 변수 문법을 이해하는 것. 아카이빙은 계속하는 것

- 마부뉴스 (SBS 데이터저널리즘팀이 발행하는 뉴스) https://mabunews.stibee.com/
- 갭마인드(X축이 GDP, Y축이 기대수명) │ https://www.gapminder.org/tools/#$chart-type=bubbles&url=v2
- 팩트풀니스 (갭마인드 만든 사람)│책 사서 읽어볼만 함
- 뉴스래터 (미술, 음악 권장) https://sema.seoul.go.kr/kr/whatson/landing
- BBC에서 만든 예쁜 그래프 툴 https://bbc.github.io/rcookbook/
- ggthems : 디자이너들이 만든 그래프를 쓸 수 있음   https://yutannihilation.github.io/allYourFigureAreBelongToUs/ggthemes/
- ggplot gallery https://exts.ggplot2.tidyverse.org/gallery
- R graph Gallery    https://r-graph-gallery.com/


- 진짜 유망한 분야임. AI 관련해서 -- 공부를 따로 하는 것 매우 유망하다.
- 회민님 도움을 받아서 해볼까? 
- AI를 능숙하게 다루는 사람의 퍼포먼스와, AI를 능숙하게 다루지 못하는 사람의 퍼포먼스는 엄청난 차이가 날 것이다.
- 통계를 배우면 사람들간의 논쟁을 대부분 해결할 수 있다.

ADSP : 데이터 분석 준전문가 (코드 한줄 못쳐도 딸 수 있음.)
ADP: 데이터 분석 전문가 3% (먹고 사는데 큰 어려움이 없음.)

data() 로 볼 수 있고
tab으로 자동완성 할 수 있다.
head() 데이터셋의 위의 6개만 볼거야
?dataset : 설명서
head(ChickWeight, 10)

ctrl+enter : 실행

체계화 시키는 것
1st, 2nd, 3st 4st ...
2.5. 3 round

 

예제

 

library(ggplot2)  입력하고 Packages에 ggplot 박스 체크된 것을 확인

데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제
libarary(ggplot2)

ggplot cheetsheet

https://github.com/rstudio/cheatsheets/blob/main/data-visualization.pdf

 

cheatsheets/data-visualization.pdf at main · rstudio/cheatsheets

Posit Cheat Sheets - Can also be found at https://posit.co/resources/cheatsheets/. - rstudio/cheatsheets...

github.com

 

데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제
ggplot2 cheetsheet
data-visualization (2).pdf
1.92MB
데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제
ggplot2의 핵심부분

 

 

예제 1번

ggplot(data = mpg) # 그래프를 그리겠다. 데이터는 mpg다

ggplot(data = mpg) +
    geom_point(mapping = aes(x = model,
                             y = hwy,
                             color = drv))

 

산점도 그래프를 그려라, x축에는 모델을 놓고, y축에는 hwy를 놓아라, drv는 색상으로 나누어라

 

데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제

 

x축의 정보를 읽을 수 없기 때문에 x-y축 축변환을 하는 코드를 추가해준다.

 

ggplot(data = mpg) +
  geom_point(mapping = aes(x = model,
                           y = hwy,
                           color = drv)) +
  coord_flip()

데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제
축변환 coord_flip()

 

facet을 이용하여 면분할을 해준다. 

# facet 면분할 / 시각화 할 때 확실히 다르다. / 데이터 분석은 계속 이렇게 쪼개 가는 것이다. / 탐색적 데이터 분석
ggplot(data = mpg) +
  geom_point(mapping = aes(x = model,
                           y = hwy,
                           color = drv)) +
  coord_flip() +
  facet_wrap(.~class, scales = 'free_y') # sclae를 추가하는 것으로 있는 것만 나오게 되었다.

데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제
class

class에 따라 따라 다르게 구분되어 나온다.

 

ggplot(data = mpg) +
  geom_point(mapping = aes(x = model,
                           y = hwy,
                           color = drv)) +
  coord_flip() +
  facet_wrap(.~drv) +
  scale_color_brewer(palette = 'Dark2')

데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제

Dark2로 색상변경을 해준 모습

 

마지막으로 테마를 입혀준 모습

# Theme
ggplot(data = mpg) +
  geom_point(mapping = aes(x = model,
                           y = hwy,
                           color = drv)) +
  coord_flip() +
  facet_wrap(.~drv) +
  scale_color_brewer(palette = 'Dark2') +
  theme_minimal() +                           # 미니멀 테마를 적용하고
  theme(axis.text = element_text(size = 14),  # 텍스트 크기는 14,
        axis.title = element_text(color = "lightblue"),  # 제목의 색상은 파랑
        axis.line = element_line(color = "black"),  # 테두리 색상은 검정
        strip.text = element_text(size = 16),       # 분할 제목의 크기는 16
        strip.background = element_rect(fill = 'lightpink'), # 분할 배경은 분홍
        legend.position = 'none')

 

데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제

R studio에서는 이렇게 색상도 미리볼 수 있게 나온다.

 

데이터 분석을 위한 R수업 <1차시 : ggplot2> - undefined - 예제
최종결과물

 

ggplot2를 이용해 기존에 내장되어 있는 mpg데이터를 시각화해보았다.

반응형