호흡기질환과 미세먼지 상관관계.pdf
12.10MB
# 필요한 패키지 설치 및 로드
install.packages("ggmap")
install.packages("dplyr")
install.packages("tidyr")
library(ggmap)
library(dplyr)
library(tidyr)
# Google Maps API 키 등록 (발급받은 API 키로 대체)
register_google(key = "YOUR_GOOGLE_MAPS_API_KEY")
# PM_10 데이터 로드
pm_data <- read.csv("path/to/PM_10.csv", fileEncoding = "UTF-8")
# PM_Level 변수를 수치로 변환
pm_data$PM_Level <- as.numeric(factor(pm_data$등급, levels = c("좋음", "보통", "나쁨", "매우나쁨")))
# 도시 열 선택 및 연도별 PM Level 빈도 계산
city_columns <- colnames(pm_data)[3:(ncol(pm_data) - 1)] # 도시 컬럼 선택
pm_level_frequency <- pm_data %>%
group_by(년도, PM_Level) %>%
summarise(across(all_of(city_columns), sum, na.rm = TRUE)) %>%
pivot_longer(cols = -c(년도, PM_Level), names_to = "도시", values_to = "빈도수")
# 도시별 위도와 경도를 자동으로 가져오기
pm_level_frequency <- pm_level_frequency %>%
mutate_geocode(도시)
# 연도별로 지도에 시각화
unique_years <- unique(pm_level_frequency$년도)
maps <- list()
for (year in unique_years) {
# 해당 연도 데이터 필터링
year_data <- pm_level_frequency %>% filter(년도 == year)
# 한국 지도 가져오기
korea_map <- get_map(location = "South Korea", zoom = 7, maptype = "roadmap")
# 지도에 도시별 빈도 합계 시각화
maps[[as.character(year)]] <- ggmap(korea_map) +
geom_point(data = year_data, aes(x = lon, y = lat, color = factor(PM_Level), size = 빈도수), alpha = 0.7) +
scale_color_manual(values = c("1" = "blue", "2" = "green", "3" = "orange", "4" = "red"), name = "PM Level") +
labs(title = paste(year, "년 도시별 PM Level 빈도수 합계"), x = "경도", y = "위도") +
theme_minimal()+
theme(text = element_text(family = "AppleGothic"),
axis.text.x = element_text(angle = 45, hjust = 1))
}
# 연도별 지도 출력
maps
# 필요한 패키지 설치 및 로드
library(ggplot2)
library(dplyr)
# 호흡기 질환 데이터 로드
respiratory_disease <- read.csv("18_23.csv", fileEncoding = "UTF-8")
# 연도별 환자 수 합계 계산 (이미 합계된 상태라면 이 부분은 생략 가능)
respiratory_yearly <- respiratory_disease %>%
group_by("년도") %>%
summarise("환자수" = sum("환자수", na.rm = TRUE))
# 연도별 환자 수 시각화
ggplot(respiratory_disease, aes(x = "년도", y = "환자수")) +
geom_bar(stat = "identity", fill = "skyblue") +
labs(title = "연도별 호흡기 질환 환자 수", x = "년도", y = "환자 수") +
theme_minimal() +
theme(text = element_text(family = "AppleGothic"),
axis.text.x = element_text(angle = 45, hjust = 1))
# 필요한 패키지 설치 및 로드
install.packages("ggplot2")
library(ggplot2)
library(dplyr)
# 파일 읽기
combined_data <- read.csv("18_23.csv", fileEncoding = "UTF-8")
# 년도와 주차 결합
combined_data <- combined_data %>%
mutate(년도_주차 = paste(년도, 주차, sep = "_")) # "년도-주차" 형식으로 결합
# 데이터 순서 정렬 (필요하면)
combined_data <- combined_data %>%
arrange(년도, 주차)
# 시각화
ggplot(combined_data, aes(x = 년도_주차, y = 환자수, group = 1)) +
geom_line(color = "blue", size = 1) + # 선 그래프
geom_point(color = "red", size = 2) + # 점 추가
labs(title = "년도와 주차별 환자 수", x = "년도-주차", y = "환자 수") +
theme_minimal() +
theme(text = element_text(family = "AppleGothic"),
axis.text.x = element_text(angle = 45, hjust = 1, size = 8) # x축 레이블 기울임
)
library(dplyr)
library(ggplot2)
# 데이터 불러오기
combined_data <- read.csv("18_23.csv", fileEncoding = "UTF-8")
# 월 계산 (주차를 이용)
combined_data <- combined_data %>%
mutate(월 = ceiling(주차 / 4)) # 주차를 4주 단위로 나눠 월 계산
# 월별 데이터 요약 (년도와 월 기준으로 그룹화)
monthly_data <- combined_data %>%
group_by(년도, 월) %>%
summarise(월별_환자수 = sum(환자수, na.rm = TRUE)) %>%
ungroup()
# 월별 데이터를 결합된 형식으로 표시 (년도-월)
monthly_data <- monthly_data %>%
mutate(년도_월 = paste(년도, 월, sep = "_"))
# 시각화
ggplot(monthly_data, aes(x = 년도_월, y = 월별_환자수, group = 1)) +
geom_line(color = "blue", size = 1) +
geom_point(color = "red", size = 2) +
labs(title = "월별 호흡기 질환 환자 수", x = "년도_월", y = "환자 수") +
theme_minimal() +
theme(text = element_text(family = "AppleGothic"),
axis.text.x = element_text(angle = 45, hjust = 1, size = 8) # x축 레이블 기울임
)
library(dplyr)
library(ggplot2)
# 년도와 월을 기준으로 데이터 정렬
monthly_data <- monthly_data %>%
mutate(년도_월 = factor(년도_월, levels = unique(년도_월[order(년도, 월)]))) # 년도와 월 기준으로 정렬
combined_data <- combined_data %>%
mutate(월 = ceiling(주차 / 4), # 기존 계산
월 = ifelse(월 > 12, 12, 월)) # 월이 12를 초과하지 않도록 제한
# 정렬된 데이터로 시각화
ggplot(monthly_data, aes(x = 년도_월, y = 월별_환자수, group = 1)) +
geom_line(color = "blue", size = 1) +
geom_point(color = "red", size = 2) +
labs(title = "월별 호흡기 질환 환자 수", x = "년도-월", y = "환자 수") +
theme_minimal() +
theme(text = element_text(family = "AppleGothic"),
axis.text.x = element_text(angle = 45, hjust = 1, size = 8) # x축 레이블 기울임
)
library(dplyr)
library(ggplot2)
# 파일 읽기
combined_data <- read.csv("18_23.csv", fileEncoding = "UTF-8")
# 주차를 월로 매핑
combined_data <- combined_data %>%
mutate(
월 = case_when(
주차 >= 1 & 주차 <= 4 ~ 1,
주차 >= 5 & 주차 <= 8 ~ 2,
주차 >= 9 & 주차 <= 13 ~ 3,
주차 >= 14 & 주차 <= 17 ~ 4,
주차 >= 18 & 주차 <= 21 ~ 5,
주차 >= 22 & 주차 <= 26 ~ 6,
주차 >= 27 & 주차 <= 30 ~ 7,
주차 >= 31 & 주차 <= 35 ~ 8,
주차 >= 36 & 주차 <= 39 ~ 9,
주차 >= 40 & 주차 <= 43 ~ 10,
주차 >= 44 & 주차 <= 48 ~ 11,
주차 >= 49 & 주차 <= 53 ~ 12
)
)
# 월별 데이터 요약
monthly_data <- combined_data %>%
group_by(년도, 월) %>%
summarise(월별_환자수 = sum(환자수, na.rm = TRUE)) %>%
ungroup() %>%
mutate(년도_월 = paste(년도, 월, sep = "_"))
# 월별 데이터 시각화
ggplot(monthly_data, aes(x = 년도_월, y = 월별_환자수, group = 1)) +
geom_line(color = "blue", size = 1) +
geom_point(color = "red", size = 2) +
labs(title = "월별 호흡기 질환 환자 수", x = "년도_월", y = "환자 수") +
theme_minimal() +
theme(text = element_text(family = "AppleGothic"),
axis.text.x = element_text(angle = 45, hjust = 1, size = 8)
)
'통계 > 프로젝트' 카테고리의 다른 글
공공의료 빅데이터 분석 (0) | 2025.03.23 |
---|---|
암환자 생존 분석 (0) | 2025.03.23 |
대한민국 지역별 주택 가격 및 상승률 비교 (0) | 2025.03.23 |