지역마다 화재 발생 수와 구조대 인력 수를 비교하여 어떤 지역이 화재 대비 구조대 인력이 많은지 또는 적은지와 구조대 인력 수 대비 구조건수를 계산하여 어떤 지역의 구조대가 효율적으로 활용되고 있는지 파악해보기 위한 분석
read_excel("all.xlsx") -> raw_total
raw_total -> total # 복사본 생성
total <- subset(total, select = c("행정구역별", "2021...2","2021...3","2021...4")) # 필요없는 칼럼 제거
total <- total %>% rename(count = "2021...2", death = "2021...3", injury = "2021...4", district = "행정구역별") # 칼럼 이름 변경
total <- total[-c(1,2), ] # 필요없는 행 삭제
total$count <- as.numeric(total$count)
total$total <- 36267 #전체 화재발생 수
total <- total %>% mutate(code = c("11", "21", "22", "23", "24", "25", "26", "29", "31", "32", "33", "34", "35", "36", "37", "38", "39")) # 지도시각화를 위한 지역 코드
total$percentage <- total$count/total$total*100
total # 화재 발생 지역별
## # A tibble: 17 × 7
## district count death injury total code percentage
## <chr> <dbl> <chr> <chr> <dbl> <chr> <dbl>
## 1 서울특별시 4951 37 280 36267 11 13.7
## 2 부산광역시 2271 16 138 36267 21 6.26
## 3 대구광역시 1189 5 61 36267 22 3.28
## 4 인천광역시 1270 10 65 36267 23 3.50
## 5 광주광역시 743 8 19 36267 24 2.05
## 6 대전광역시 796 6 40 36267 25 2.19
## 7 울산광역시 802 5 63 36267 26 2.21
## 8 세종특별자치시 185 - 15 36267 29 0.510
## 9 경기도 8169 66 425 36267 31 22.5
## 10 강원도 1780 19 141 36267 32 4.91
## 11 충청북도 1382 11 94 36267 33 3.81
## 12 충청남도 2015 17 55 36267 34 5.56
## 13 전라북도 1984 10 80 36267 35 5.47
## 14 전라남도 2473 21 65 36267 36 6.82
## 15 경상북도 2849 21 188 36267 37 7.86
## 16 경상남도 2864 21 106 36267 38 7.90
## 17 제주특별자치도 544 3 19 36267 39 1.50
ggChoropleth(data = total, aes(fill = count, map_id = code , tooltip = district), map = kormap1, interactive = T )
read_excel("119fire.xlsx") -> raw_rescue
raw_rescue -> rescue
rescue <- subset(rescue, select = c("본부별","2021...2","2021...3")) # 칼럼 제거
rescue <- rescue %>% rename(head = "본부별", group = "2021...2", personnel = "2021...3") # 칼럼 이름 변경
rescue <- rescue[-c(1,2), ] # 행 제거
rescue # 본부별 구조대
## # A tibble: 21 × 3
## head group personnel
## <chr> <chr> <chr>
## 1 중앙 4.0 381.0
## 2 시·도 275.0 5282.0
## 3 서울특별시 33.0 679.0
## 4 부산광역시 14.0 312.0
## 5 대구광역시 12.0 243.0
## 6 인천광역시 14.0 318.0
## 7 광주광역시 7.0 123.0
## 8 대전광역시 6.0 150.0
## 9 울산광역시 7.0 121.0
## 10 세종특별자치시 2.0 31.0
## # ℹ 11 more rows
read_excel("119em.xlsx") -> raw_firstaid
raw_firstaid -> firstaid
firstaid <- firstaid %>% select("본부별(1)", "2021...3", "2021...4") # 칼럼 제거
firstaid <- firstaid[-c(1,2,3), ] # 행 제거
firstaid <- firstaid %>% rename(head = "본부별(1)", ambulance = "2021...3", medic= "2021...4") # 칼럼 이름 변경
firstaid # 지역별 구급대
## # A tibble: 19 × 3
## head ambulance medic
## <chr> <chr> <chr>
## 1 전국 1579.0 13133.0
## 2 서울특별시 177.0 1473.0
## 3 부산광역시 70.0 633.0
## 4 대구광역시 55.0 495.0
## 5 인천광역시 72.0 592.0
## 6 광주광역시 30.0 270.0
## 7 대전광역시 34.0 286.0
## 8 울산광역시 31.0 261.0
## 9 세종특별자치시 11.0 99.0
## 10 경기도 261.0 1896.0
## 11 강원도 128.0 1014.0
## 12 충청북도 68.0 612.0
## 13 충청남도 116.0 990.0
## 14 전라북도 99.0 891.0
## 15 전라남도 110.0 870.0
## 16 경상북도 146.0 1279.0
## 17 경상남도 110.0 954.0
## 18 제주도 32.0 278.0
## 19 창원 29.0 240.0
left_join으로 구조대,구급대 합치기
df_119 <- left_join(firstaid, rescue, by = "head")
df_119 <- df_119[-c(1,19), ]
df_119 # 지역별 구급차,구급대원,구조대,구조대원
## # A tibble: 17 × 5
## head ambulance medic group personnel
## <chr> <chr> <chr> <chr> <chr>
## 1 서울특별시 177.0 1473.0 33.0 679.0
## 2 부산광역시 70.0 633.0 14.0 312.0
## 3 대구광역시 55.0 495.0 12.0 243.0
## 4 인천광역시 72.0 592.0 14.0 318.0
## 5 광주광역시 30.0 270.0 7.0 123.0
## 6 대전광역시 34.0 286.0 6.0 150.0
## 7 울산광역시 31.0 261.0 7.0 121.0
## 8 세종특별자치시 11.0 99.0 2.0 31.0
## 9 경기도 261.0 1896.0 27.0 606.0
## 10 강원도 128.0 1014.0 22.0 447.0
## 11 충청북도 68.0 612.0 14.0 295.0
## 12 충청남도 116.0 990.0 17.0 304.0
## 13 전라북도 99.0 891.0 13.0 216.0
## 14 전라남도 110.0 870.0 23.0 339.0
## 15 경상북도 146.0 1279.0 22.0 401.0
## 16 경상남도 110.0 954.0 21.0 331.0
## 17 제주도 32.0 278.0 4.0 75.0
구조대와 구급대 인원수의 합 생성 및 화재 발생 수당 구급구조대 인원 비율 생성
df_119$sum <- df_119$medic+df_119$personnel
df_119 <- df_119 %>% rename(district = head)
df_119 <- df_119 %>% mutate(district = ifelse(district == "제주도", "제주특별자치도", district))
df_head119 <- left_join(total,df_119, by = "district")
df_head119$percentage <- df_head119$sum/df_head119$count*100 ## 화재 발생 횟수 1건 당 구조,구급대 인원의 비율(클수록 많은 인원)
df_head119
## # A tibble: 17 × 12
## district count death injury total code percentage ambulance medic group
## <chr> <dbl> <chr> <chr> <dbl> <chr> <dbl> <dbl> <dbl> <dbl>
## 1 서울특별시 4951 37 280 36267 11 43.5 177 1473 33
## 2 부산광역시 2271 16 138 36267 21 41.6 70 633 14
## 3 대구광역시 1189 5 61 36267 22 62.1 55 495 12
## 4 인천광역시 1270 10 65 36267 23 71.7 72 592 14
## 5 광주광역시 743 8 19 36267 24 52.9 30 270 7
## 6 대전광역시 796 6 40 36267 25 54.8 34 286 6
## 7 울산광역시 802 5 63 36267 26 47.6 31 261 7
## 8 세종특별자치… 185 - 15 36267 29 70.3 11 99 2
## 9 경기도 8169 66 425 36267 31 30.6 261 1896 27
## 10 강원도 1780 19 141 36267 32 82.1 128 1014 22
## 11 충청북도 1382 11 94 36267 33 65.6 68 612 14
## 12 충청남도 2015 17 55 36267 34 64.2 116 990 17
## 13 전라북도 1984 10 80 36267 35 55.8 99 891 13
## 14 전라남도 2473 21 65 36267 36 48.9 110 870 23
## 15 경상북도 2849 21 188 36267 37 59.0 146 1279 22
## 16 경상남도 2864 21 106 36267 38 44.9 110 954 21
## 17 제주특별자치… 544 3 19 36267 39 64.9 32 278 4
## # ℹ 2 more variables: personnel <dbl>, sum <dbl>
ggChoropleth(data = df_head119, aes(fill = percentage, map_id = code , tooltip = district), map = kormap1, interactive = T )
read_excel("number_rescue.xlsx") -> number_rescue
number_rescue <- number_rescue %>% rename("x2021" = `2021`)
number_rescue <- subset(number_rescue, select = c("본부별", "사고종별", "x2021"))
number_rescue_fire <- number_rescue %>% filter(사고종별 %in% c("계", "화재"))
number_rescue_fire <- number_rescue_fire %>% fill(본부별)
number_rescue_fire <- number_rescue_fire %>% filter(사고종별 == "화재")
number_rescue_fire <- number_rescue_fire %>% filter(본부별 != "계", 본부별 != "창원", 본부별 !="중앙")
number_rescue_fire <- number_rescue_fire %>% rename("district" = "본부별") #
number_rescue_fire$district[number_rescue_fire$district == "제주도"] <- "제주특별자치도"
# 119구조대 인력과 구조건수비교
rescue17 <- rescue %>% filter(head != "중앙", head != "시·도", head != "창원")
rescue17 <- rescue17 %>% rename("district" = "head")
rescue17$district[rescue17$district == "제주도"] <- "제주특별자치도"
df_nrfr <- left_join(number_rescue_fire, rescue17, by = "district") # 두 데이터 합치기
df_nrfr$"x2021" <- as.numeric(df_nrfr$"x2021")
df_nrfr$personnel <- as.numeric(df_nrfr$personnel)
df_nrfr$"x2021"/df_nrfr$personnel -> df_nrfr$number_rescue_personnel
df_nrfr
## # A tibble: 17 × 6
## district 사고종별 x2021 group personnel number_rescue_personnel
## <chr> <chr> <dbl> <chr> <dbl> <dbl>
## 1 서울특별시 화재 40799 33.0 679 60.1
## 2 부산광역시 화재 2641 14.0 312 8.46
## 3 대구광역시 화재 2714 12.0 243 11.2
## 4 인천광역시 화재 3766 14.0 318 11.8
## 5 광주광역시 화재 1828 7.0 123 14.9
## 6 대전광역시 화재 1613 6.0 150 10.8
## 7 울산광역시 화재 3008 7.0 121 24.9
## 8 세종특별자치시 화재 786 2.0 31 25.4
## 9 경기도 화재 14421 27.0 606 23.8
## 10 강원도 화재 2223 22.0 447 4.97
## 11 충청북도 화재 3783 14.0 295 12.8
## 12 충청남도 화재 3998 17.0 304 13.2
## 13 전라북도 화재 2788 13.0 216 12.9
## 14 전라남도 화재 4167 23.0 339 12.3
## 15 경상북도 화재 3517 22.0 401 8.77
## 16 경상남도 화재 5100 21.0 331 15.4
## 17 제주특별자치도 화재 1175 4.0 75 15.7
df_nrfr <- df_nrfr %>% mutate(code = c("11", "21", "22", "23", "24", "25", "26", "29", "31", "32", "33", "34", "35", "36", "37", "38", "39")) # 지도 코드
ggChoropleth(data = df_nrfr, aes(fill = number_rescue_personnel, map_id = code , tooltip = district), map = kormap1, interactive = T )