📚해당 게시글은 '이지스 퍼블리싱' 출판, 데이터 분석가 '김영우'님이 지은 도서 "Do it! 쉽게 배우는 R 데이터 분석" 을 기반으로 작성된 게시글입니다. 저작권 문제 시 게시글을 삭제 하겠습니다 :)
지도의 시각화란, 지도에 지역별 특성을 색으로 표현한 '단계 구분도'를 만드는 방법이다.
- 미국 주별 강력 범죄율 단계 구분도 만들기
1. 패키지 설치 (mapproj, ggiraphExtra, maps)
2. 패키지 로드 (ggiraphExtra, tibble, ggplot2)
> mapproj는 ggiraphExtra 패키지를 이용하는데 필요한 패키지이며, tibble 패키지는 dplyr 패키지 설치 시 자동으로 함께 설치됨.
3. 데이터 준비하기 (USArrests: R에 내장된 데이터로, 1973 기준 미국 주 별 강력 범죄율 정보를 담고 있음)
4. USArrests 데이터는 지역명 변수가 없고, 행 이름이 지역명으로 되어있다. 행 이름을 state 변수로 바꾸어 지역명을 하나의 변수로 만든다. rownames_to_column()
5. 뒤에서 사용할 지도 데이터의 지역명 변수는 모든 값이 소문자로 되어 있다. 이와 동일하게 맞추기 위해, state의 값을 소문자로 수정한다. tolower()
6. 앞서 로드한 ggplot2 패키지의 map_data()함수를 이용해 미국 주별 위경도 데이터가 들어있는 지도를 데이터 프레임 형태로 불러온다.
7. 단계 구분도 만들기 ggChoropleth(), fill = , map_id = , map =
> 실습에서는 살인 범죄 건수를 색으로 표현했고, 지역 구분의 기준을 '지역'으로 뒀다.
crime 데이터의 state 변수와 states_map 데이터의 region 변수는 미국 주 이름을 나타내는 동일한 값으로 구성되어 있는데, 이 변수들이 지도상에서 지역을 구분하는 기준이 되는 것.
추가로, 여기서 interactive = 파라미터를 T(TRUE)로 설정하고 출력하면, 지도에 마우스를 갖다 대면 해당 지역의 값이 표시된다.
마우스의 움직임에 반응하는 인터랙티브 단계 구분도를 생성한 것이다.
인터랙티브 그래프는 다음 단원에서 더 자세하게 다뤄볼 것이다.
- 대한민국 시도별 인구, 결핵 환자 수 단계 구분도 만들기
지금까지는 미국의 데이터를 분석했다면, 대한민국의 지역 통계 데이터와 지도 데이터를 사용할 수 있다.
1. 패키지 설치 (stringi, devtools, install_github())
devtools::install_github("cardiomoon/kormaps2014") 함수를 사용했는데,
어떤 패키지들은 CRAN에 등록되어 있지 않고 깃허브를 통해 공유된다. 여기서 devtools 패키지의 install_github()를 이용하면 깃허브에 공유된 패키지를 설치할 수 있는 것이다.
2. 패키지 로드 (kormaps2014, dplyr)
3. 데이터 준비 (kormaps2014 패키지의 korpop1, kormap1)
4. 변수명이 한글일 경우 오류가 발생할 수 있으니 영문자로 수정 rename()
5. 지역명이 깨지지 않도록 name의 인코딩을 CP949로 변경 iconv()
6. 단계 구분도 만들기 ggChoropleth(), fill = , map_id = , tooltip = , map = , interactive =
이번에는 총 인구 수를 색으로 표시해주었다.
그리고 지역 기준 변수는 'code' 변수이다. code 변수는 숫자로 되어있기 때문에 지도에 마우스 커서를 올리면 코드가 표시된다.
여기서, 코드 대신 지역명이 표시되도록 tooltip에 지역명 변수인 name을 지정해 준 것이다.
+ 대한민국 시도별 결핵 환자 수 단계 구분도 만들기
kormaps2014 패키지에는 지역별 결핵 환자 수에 대한 정보를 담은 tbc 데이터가 포함되어있다.
이번에는 tbc 데이터의 NewPts(결핵 환자 수) 변수를 이용해 분석을 해보자
1. name의 인코딩을 CP949로 변경 iconv()
2. 단계 구분도 만들기 ggChoropleth(), fill = , map_id = , tooltip = , map = , interactive =
(데이터만 달라졌지 과정은 같다.) 이번에는 결핼 환자 수를 색으로 표현했고, 지역 기준 변수가 code 인데, 이 역시 코드 대신 지역명이 표시되도록 tooltip에 지역명 변수인 name을 지정해줬다.
대한민국 자료 분석할 때 캡처해둔 거 달려서 결국 글로만 작성했다.. 어째 저번 실습부터 함수나 파라미터보다 패키지 설치하고 로드하는게 훨씬 더 많아진 느낌이다. 함수랑 파라미터는 비슷비슷..? 물론 새로운 함수도 있지만 프롬프트 형식 자체가 많이 바뀌지 않아서 다행이다. 하다 보면 손에 익고 머리가 기억하겠지.. 생각하며 하루하루 실습 해나가는 중..
오늘 잠깐 본 인터랙티브 그래프!에 대해 다음 단원에서 자세히 다룰 예정이다. :-)
'(통계분석) R' 카테고리의 다른 글
10.13(화) 통계분석 기법을 이용한 가설 검정 (0) | 2020.10.13 |
---|---|
10.12(월) 인터랙티브 그래프 (0) | 2020.10.12 |
10.09(금) 텍스트 마이닝 (0) | 2020.10.09 |
10.06(화) 성별 직업 빈도, 종교 유무에 따른 이혼율, 지역별 연령대 비율 (0) | 2020.10.06 |
10.04(일) 데이터 분석 실전 (연령대에 따른 월급 차이, 연령대 및 성별 월급 차이, 직업별 월급 차이 분석) (0) | 2020.10.04 |