library(dplyr)
## 
## 다음의 패키지를 부착합니다: 'dplyr'
## The following objects are masked from 'package:stats':
## 
##     filter, lag
## The following objects are masked from 'package:base':
## 
##     intersect, setdiff, setequal, union
library(readxl)
## Warning: 패키지 'readxl'는 R 버전 4.2.2에서 작성되었습니다
airseoul <- read_excel("period1.xlsx")
str(airseoul)
## tibble [1,535 × 8] (S3: tbl_df/tbl/data.frame)
##  $ 날짜                       : chr [1:1535] "전체" "2022-03-31" "2022-03-31" "2022-03-31" ...
##  $ 측정소명                   : chr [1:1535] "평균" "평균" "강남구" "강동구" ...
##  $ 미세먼지 PM10
## (㎍/m3)   : num [1:1535] 41 20 21 26 NA 23 19 21 23 17 ...
##  $ 초미세먼지
## PM2.5 (㎍/m3): num [1:1535] 23 11 10 13 17 9 9 10 10 9 ...
##  $ 오존
## O3 (ppm)           : chr [1:1535] "0.026" "0.032" "0.033" "0.026" ...
##  $ 이산화질소
## NO2 (ppm)    : chr [1:1535] "0.026" "0.014" "0.015" "0.014" ...
##  $ 일산화탄소
## CO (ppm)     : chr [1:1535] "0.5" "0.3" "0.3" "0.3" ...
##  $ 아황산가스
## SO2(ppm)     : num [1:1535] 0.003 0.002 0.003 0.002 0.003 0.003 0.002 0.003 0.003 0.002 ...
names(airseoul)
## [1] "날짜"                        "측정소명"                   
## [3] "미세먼지 PM10\r\n(㎍/m3)"    "초미세먼지\r\nPM2.5 (㎍/m3)"
## [5] "오존\r\nO3 (ppm)"            "이산화질소\r\nNO2 (ppm)"    
## [7] "일산화탄소\r\nCO (ppm)"      "아황산가스\r\nSO2(ppm)"
airseoul1 <- airseoul %>% 
  rename(date = "날짜",
         region = "측정소명",
         pm10 = "미세먼지 PM10\r\n(㎍/m3)",
         pm2.5= "초미세먼지\r\nPM2.5 (㎍/m3)") %>%
  select(date, region, pm10, pm2.5)
glimpse(airseoul1)
## Rows: 1,535
## Columns: 4
## $ date   <chr> "전체", "2022-03-31", "2022-03-31", "2022-03-31", "2022-03-31",…
## $ region <chr> "평균", "평균", "강남구", "강동구", "강북구", "강서구", "관악구…
## $ pm10   <dbl> 41, 20, 21, 26, NA, 23, 19, 21, 23, 17, 20, 16, 23, 21, 19, 17,…
## $ pm2.5  <dbl> 23, 11, 10, 13, 17, 9, 9, 10, 10, 9, 11, 11, 10, 11, 8, 7, 17, …
table(airseoul1$date)
## 
## 2022-02-01 2022-02-02 2022-02-03 2022-02-04 2022-02-05 2022-02-06 2022-02-07 
##         26         26         26         26         26         26         26 
## 2022-02-08 2022-02-09 2022-02-10 2022-02-11 2022-02-12 2022-02-13 2022-02-14 
##         26         26         26         26         26         26         26 
## 2022-02-15 2022-02-16 2022-02-17 2022-02-18 2022-02-19 2022-02-20 2022-02-21 
##         26         26         26         26         26         26         26 
## 2022-02-22 2022-02-23 2022-02-24 2022-02-25 2022-02-26 2022-02-27 2022-02-28 
##         26         26         26         26         26         26         26 
## 2022-03-01 2022-03-02 2022-03-03 2022-03-04 2022-03-05 2022-03-06 2022-03-07 
##         26         26         26         26         26         26         26 
## 2022-03-08 2022-03-09 2022-03-10 2022-03-11 2022-03-12 2022-03-13 2022-03-14 
##         26         26         26         26         26         26         26 
## 2022-03-15 2022-03-16 2022-03-17 2022-03-18 2022-03-19 2022-03-20 2022-03-21 
##         26         26         26         26         26         26         26 
## 2022-03-22 2022-03-23 2022-03-24 2022-03-25 2022-03-26 2022-03-27 2022-03-28 
##         26         26         26         26         26         26         26 
## 2022-03-29 2022-03-30 2022-03-31       전체 
##         26         26         26          1
table(airseoul1$region)
## 
##   강남구   강동구   강북구   강서구   관악구   광진구   구로구   금천구 
##       59       59       59       59       59       59       59       59 
##   노원구   도봉구 동대문구   동작구   마포구 서대문구   서초구   성동구 
##       59       59       59       59       59       59       59       59 
##   성북구   송파구   양천구 영등포구   용산구   은평구   종로구     중구 
##       59       59       59       59       59       59       59       59 
##   중랑구     평균 
##       59       60
View(airseoul1)

airseoul1 <- airseoul1 %>% filter(date != "전체"&region != "평균")

table(airseoul1$date)
## 
## 2022-02-01 2022-02-02 2022-02-03 2022-02-04 2022-02-05 2022-02-06 2022-02-07 
##         25         25         25         25         25         25         25 
## 2022-02-08 2022-02-09 2022-02-10 2022-02-11 2022-02-12 2022-02-13 2022-02-14 
##         25         25         25         25         25         25         25 
## 2022-02-15 2022-02-16 2022-02-17 2022-02-18 2022-02-19 2022-02-20 2022-02-21 
##         25         25         25         25         25         25         25 
## 2022-02-22 2022-02-23 2022-02-24 2022-02-25 2022-02-26 2022-02-27 2022-02-28 
##         25         25         25         25         25         25         25 
## 2022-03-01 2022-03-02 2022-03-03 2022-03-04 2022-03-05 2022-03-06 2022-03-07 
##         25         25         25         25         25         25         25 
## 2022-03-08 2022-03-09 2022-03-10 2022-03-11 2022-03-12 2022-03-13 2022-03-14 
##         25         25         25         25         25         25         25 
## 2022-03-15 2022-03-16 2022-03-17 2022-03-18 2022-03-19 2022-03-20 2022-03-21 
##         25         25         25         25         25         25         25 
## 2022-03-22 2022-03-23 2022-03-24 2022-03-25 2022-03-26 2022-03-27 2022-03-28 
##         25         25         25         25         25         25         25 
## 2022-03-29 2022-03-30 2022-03-31 
##         25         25         25
table(airseoul1$region)
## 
##   강남구   강동구   강북구   강서구   관악구   광진구   구로구   금천구 
##       59       59       59       59       59       59       59       59 
##   노원구   도봉구 동대문구   동작구   마포구 서대문구   서초구   성동구 
##       59       59       59       59       59       59       59       59 
##   성북구   송파구   양천구 영등포구   용산구   은평구   종로구     중구 
##       59       59       59       59       59       59       59       59 
##   중랑구 
##       59
summary(airseoul1$pm10)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    3.00   27.00   36.00   40.54   50.00  112.00       7
summary(airseoul1$pm2.5)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    1.00   13.00   19.00   23.28   32.00   92.00       3
airseoul1 <- airseoul1 %>% filter(!is.na(pm10)&!is.na(pm2.5))


summary(airseoul1$pm10)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    3.00   27.00   36.00   40.54   50.00  112.00
summary(airseoul1$pm2.5)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00   13.00   19.00   23.26   32.00   92.00
airseoul1 %>% filter(pm10==max(pm10)) %>% select(date, region, pm10)
## # A tibble: 1 × 3
##   date       region  pm10
##   <chr>      <chr>  <dbl>
## 1 2022-03-05 구로구   112
airseoul1 %>% filter(pm10==min(pm10)) %>% select(date, region, pm10)
## # A tibble: 3 × 3
##   date       region  pm10
##   <chr>      <chr>  <dbl>
## 1 2022-03-19 은평구     3
## 2 2022-03-18 도봉구     3
## 3 2022-03-18 은평구     3
airseoul1 %>% filter(pm2.5==max(pm2.5)) %>% select(date, region, pm2.5)
## # A tibble: 1 × 3
##   date       region   pm2.5
##   <chr>      <chr>    <dbl>
## 1 2022-02-12 서대문구    92
airseoul1 %>% filter(pm2.5==min(pm2.5)) %>% select(date, region, pm2.5)
## # A tibble: 6 × 3
##   date       region   pm2.5
##   <chr>      <chr>    <dbl>
## 1 2022-03-19 구로구       1
## 2 2022-03-19 종로구       1
## 3 2022-03-18 구로구       1
## 4 2022-03-18 서대문구     1
## 5 2022-03-18 서초구       1
## 6 2022-03-18 성동구       1
airseoul1 %>% group_by(region) %>% summarise(m=mean(pm10)) %>% arrange(desc(m)) %>% head(5)
## # A tibble: 5 × 2
##   region     m
##   <chr>  <dbl>
## 1 양천구  44.4
## 2 강북구  44.2
## 3 강서구  43.8
## 4 노원구  43.7
## 5 강동구  43.6
airseoul1 %>% group_by(date) %>% summarise(m=mean(pm10)) %>% arrange(desc(m)) %>% head(5)
## # A tibble: 5 × 2
##   date           m
##   <chr>      <dbl>
## 1 2022-03-05  92.3
## 2 2022-02-12  87  
## 3 2022-02-11  81.8
## 4 2022-03-04  81  
## 5 2022-03-10  70.2
airseoul1 %>% mutate(pm_grade=ifelse(pm10<=30, "good", 
                                     ifelse(pm10<=81, "normal", 
                                     ifelse(pm10<=150, "bad", "worse")))) %>%
  group_by(pm_grade) %>%
  summarise(n=n()) %>%
  mutate(total=sum(n), pct=n/total*100)
## # A tibble: 3 × 4
##   pm_grade     n total   pct
##   <chr>    <int> <int> <dbl>
## 1 bad         71  1467  4.84
## 2 good       538  1467 36.7 
## 3 normal     858  1467 58.5
airseoul1 %>% filter(pm2.5==min(pm2.5)) %>% arrange(desc(pm10))
## # A tibble: 6 × 4
##   date       region    pm10 pm2.5
##   <chr>      <chr>    <dbl> <dbl>
## 1 2022-03-18 성동구       7     1
## 2 2022-03-18 구로구       6     1
## 3 2022-03-18 서초구       6     1
## 4 2022-03-19 구로구       5     1
## 5 2022-03-18 서대문구     5     1
## 6 2022-03-19 종로구       4     1
airseoul10 <- read.csv("period10.csv", fileEncoding = "euc-kr")
glimpse(airseoul10)
## Rows: 18,000
## Columns: 10
## $ 날짜       <chr> "2022-06-01 01", "2022-06-01 02", "2022-06-01 03", "2022-06…
## $ 시도       <chr> "서울 중구", "서울 중구", "서울 중구", "서울 중구", "서울 …
## $ 측정소명   <chr> "중구", "중구", "중구", "중구", "중구", "중구", "중구", "중…
## $ 측정소코드 <int> 111121, 111121, 111121, 111121, 111121, 111121, 111121, 111…
## $ 아황산가스 <dbl> 0.004, 0.004, 0.004, 0.004, 0.004, 0.004, 0.004, 0.004, 0.0…
## $ 일산화탄소 <dbl> 0.4, 0.4, 0.5, 0.4, 0.4, 0.4, 0.4, 0.5, 0.4, 0.3, 0.3, 0.4,…
## $ 오존       <dbl> 0.022, 0.028, 0.022, 0.023, 0.037, 0.017, 0.014, 0.026, 0.0…
## $ 이산화질소 <dbl> 0.039, 0.030, 0.032, 0.029, 0.017, 0.034, 0.037, 0.034, 0.0…
## $ PM10       <int> 19, 23, 20, 20, 19, 19, 21, 45, 31, 21, 17, 21, 19, 17, 13,…
## $ PM2.5      <int> 7, 10, 12, 10, 9, 8, 7, 9, 9, 9, 8, 10, 8, 9, 5, 9, 11, 9, …
View(airseoul10)
table(airseoul10$시도)
## 
##  서울 강남구   서울 강동구   서울 강북구   서울 강서로   서울 관악구  
##           720           720           720           720           720 
##  서울 광진구   서울 구로구   서울 금천구   서울 노원구   서울 도봉구  
##           720           720           720           720           720 
## 서울 동대문구  서울 동작구   서울 마포구  서울 서대문구  서울 서초구  
##           720           720           720           720           720 
##  서울 성동구   서울 성북구   서울 송파구   서울 양천구  서울 영등포구 
##           720           720           720           720           720 
##  서울 용산구   서울 은평구   서울 종로구      서울 중구  서울 중랑구  
##           720           720           720           720           720
names(airseoul10)
##  [1] "날짜"       "시도"       "측정소명"   "측정소코드" "아황산가스"
##  [6] "일산화탄소" "오존"       "이산화질소" "PM10"       "PM2.5"
airseoul101 <- airseoul10 %>% 
  rename(date = "날짜",
         region = "측정소명",
         pm10 = "PM10",
         pm2.5= "PM2.5") %>%
  select(date, region, pm10, pm2.5)
glimpse(airseoul101)
## Rows: 18,000
## Columns: 4
## $ date   <chr> "2022-06-01 01", "2022-06-01 02", "2022-06-01 03", "2022-06-01 …
## $ region <chr> "중구", "중구", "중구", "중구", "중구", "중구", "중구", "중구",…
## $ pm10   <int> 19, 23, 20, 20, 19, 19, 21, 45, 31, 21, 17, 21, 19, 17, 13, 13,…
## $ pm2.5  <int> 7, 10, 12, 10, 9, 8, 7, 9, 9, 9, 8, 10, 8, 9, 5, 9, 11, 9, 7, 1…
table(airseoul101$date)
## 
## 2022-06-01 01 2022-06-01 02 2022-06-01 03 2022-06-01 04 2022-06-01 05 
##            25            25            25            25            25 
## 2022-06-01 06 2022-06-01 07 2022-06-01 08 2022-06-01 09 2022-06-01 10 
##            25            25            25            25            25 
## 2022-06-01 11 2022-06-01 12 2022-06-01 13 2022-06-01 14 2022-06-01 15 
##            25            25            25            25            25 
## 2022-06-01 16 2022-06-01 17 2022-06-01 18 2022-06-01 19 2022-06-01 20 
##            25            25            25            25            25 
## 2022-06-01 21 2022-06-01 22 2022-06-01 23 2022-06-01 24 2022-06-02 01 
##            25            25            25            25            25 
## 2022-06-02 02 2022-06-02 03 2022-06-02 04 2022-06-02 05 2022-06-02 06 
##            25            25            25            25            25 
## 2022-06-02 07 2022-06-02 08 2022-06-02 09 2022-06-02 10 2022-06-02 11 
##            25            25            25            25            25 
## 2022-06-02 12 2022-06-02 13 2022-06-02 14 2022-06-02 15 2022-06-02 16 
##            25            25            25            25            25 
## 2022-06-02 17 2022-06-02 18 2022-06-02 19 2022-06-02 20 2022-06-02 21 
##            25            25            25            25            25 
## 2022-06-02 22 2022-06-02 23 2022-06-02 24 2022-06-03 01 2022-06-03 02 
##            25            25            25            25            25 
## 2022-06-03 03 2022-06-03 04 2022-06-03 05 2022-06-03 06 2022-06-03 07 
##            25            25            25            25            25 
## 2022-06-03 08 2022-06-03 09 2022-06-03 10 2022-06-03 11 2022-06-03 12 
##            25            25            25            25            25 
## 2022-06-03 13 2022-06-03 14 2022-06-03 15 2022-06-03 16 2022-06-03 17 
##            25            25            25            25            25 
## 2022-06-03 18 2022-06-03 19 2022-06-03 20 2022-06-03 21 2022-06-03 22 
##            25            25            25            25            25 
## 2022-06-03 23 2022-06-03 24 2022-06-04 01 2022-06-04 02 2022-06-04 03 
##            25            25            25            25            25 
## 2022-06-04 04 2022-06-04 05 2022-06-04 06 2022-06-04 07 2022-06-04 08 
##            25            25            25            25            25 
## 2022-06-04 09 2022-06-04 10 2022-06-04 11 2022-06-04 12 2022-06-04 13 
##            25            25            25            25            25 
## 2022-06-04 14 2022-06-04 15 2022-06-04 16 2022-06-04 17 2022-06-04 18 
##            25            25            25            25            25 
## 2022-06-04 19 2022-06-04 20 2022-06-04 21 2022-06-04 22 2022-06-04 23 
##            25            25            25            25            25 
## 2022-06-04 24 2022-06-05 01 2022-06-05 02 2022-06-05 03 2022-06-05 04 
##            25            25            25            25            25 
## 2022-06-05 05 2022-06-05 06 2022-06-05 07 2022-06-05 08 2022-06-05 09 
##            25            25            25            25            25 
## 2022-06-05 10 2022-06-05 11 2022-06-05 12 2022-06-05 13 2022-06-05 14 
##            25            25            25            25            25 
## 2022-06-05 15 2022-06-05 16 2022-06-05 17 2022-06-05 18 2022-06-05 19 
##            25            25            25            25            25 
## 2022-06-05 20 2022-06-05 21 2022-06-05 22 2022-06-05 23 2022-06-05 24 
##            25            25            25            25            25 
## 2022-06-06 01 2022-06-06 02 2022-06-06 03 2022-06-06 04 2022-06-06 05 
##            25            25            25            25            25 
## 2022-06-06 06 2022-06-06 07 2022-06-06 08 2022-06-06 09 2022-06-06 10 
##            25            25            25            25            25 
## 2022-06-06 11 2022-06-06 12 2022-06-06 13 2022-06-06 14 2022-06-06 15 
##            25            25            25            25            25 
## 2022-06-06 16 2022-06-06 17 2022-06-06 18 2022-06-06 19 2022-06-06 20 
##            25            25            25            25            25 
## 2022-06-06 21 2022-06-06 22 2022-06-06 23 2022-06-06 24 2022-06-07 01 
##            25            25            25            25            25 
## 2022-06-07 02 2022-06-07 03 2022-06-07 04 2022-06-07 05 2022-06-07 06 
##            25            25            25            25            25 
## 2022-06-07 07 2022-06-07 08 2022-06-07 09 2022-06-07 10 2022-06-07 11 
##            25            25            25            25            25 
## 2022-06-07 12 2022-06-07 13 2022-06-07 14 2022-06-07 15 2022-06-07 16 
##            25            25            25            25            25 
## 2022-06-07 17 2022-06-07 18 2022-06-07 19 2022-06-07 20 2022-06-07 21 
##            25            25            25            25            25 
## 2022-06-07 22 2022-06-07 23 2022-06-07 24 2022-06-08 01 2022-06-08 02 
##            25            25            25            25            25 
## 2022-06-08 03 2022-06-08 04 2022-06-08 05 2022-06-08 06 2022-06-08 07 
##            25            25            25            25            25 
## 2022-06-08 08 2022-06-08 09 2022-06-08 10 2022-06-08 11 2022-06-08 12 
##            25            25            25            25            25 
## 2022-06-08 13 2022-06-08 14 2022-06-08 15 2022-06-08 16 2022-06-08 17 
##            25            25            25            25            25 
## 2022-06-08 18 2022-06-08 19 2022-06-08 20 2022-06-08 21 2022-06-08 22 
##            25            25            25            25            25 
## 2022-06-08 23 2022-06-08 24 2022-06-09 01 2022-06-09 02 2022-06-09 03 
##            25            25            25            25            25 
## 2022-06-09 04 2022-06-09 05 2022-06-09 06 2022-06-09 07 2022-06-09 08 
##            25            25            25            25            25 
## 2022-06-09 09 2022-06-09 10 2022-06-09 11 2022-06-09 12 2022-06-09 13 
##            25            25            25            25            25 
## 2022-06-09 14 2022-06-09 15 2022-06-09 16 2022-06-09 17 2022-06-09 18 
##            25            25            25            25            25 
## 2022-06-09 19 2022-06-09 20 2022-06-09 21 2022-06-09 22 2022-06-09 23 
##            25            25            25            25            25 
## 2022-06-09 24 2022-06-10 01 2022-06-10 02 2022-06-10 03 2022-06-10 04 
##            25            25            25            25            25 
## 2022-06-10 05 2022-06-10 06 2022-06-10 07 2022-06-10 08 2022-06-10 09 
##            25            25            25            25            25 
## 2022-06-10 10 2022-06-10 11 2022-06-10 12 2022-06-10 13 2022-06-10 14 
##            25            25            25            25            25 
## 2022-06-10 15 2022-06-10 16 2022-06-10 17 2022-06-10 18 2022-06-10 19 
##            25            25            25            25            25 
## 2022-06-10 20 2022-06-10 21 2022-06-10 22 2022-06-10 23 2022-06-10 24 
##            25            25            25            25            25 
## 2022-06-11 01 2022-06-11 02 2022-06-11 03 2022-06-11 04 2022-06-11 05 
##            25            25            25            25            25 
## 2022-06-11 06 2022-06-11 07 2022-06-11 08 2022-06-11 09 2022-06-11 10 
##            25            25            25            25            25 
## 2022-06-11 11 2022-06-11 12 2022-06-11 13 2022-06-11 14 2022-06-11 15 
##            25            25            25            25            25 
## 2022-06-11 16 2022-06-11 17 2022-06-11 18 2022-06-11 19 2022-06-11 20 
##            25            25            25            25            25 
## 2022-06-11 21 2022-06-11 22 2022-06-11 23 2022-06-11 24 2022-06-12 01 
##            25            25            25            25            25 
## 2022-06-12 02 2022-06-12 03 2022-06-12 04 2022-06-12 05 2022-06-12 06 
##            25            25            25            25            25 
## 2022-06-12 07 2022-06-12 08 2022-06-12 09 2022-06-12 10 2022-06-12 11 
##            25            25            25            25            25 
## 2022-06-12 12 2022-06-12 13 2022-06-12 14 2022-06-12 15 2022-06-12 16 
##            25            25            25            25            25 
## 2022-06-12 17 2022-06-12 18 2022-06-12 19 2022-06-12 20 2022-06-12 21 
##            25            25            25            25            25 
## 2022-06-12 22 2022-06-12 23 2022-06-12 24 2022-06-13 01 2022-06-13 02 
##            25            25            25            25            25 
## 2022-06-13 03 2022-06-13 04 2022-06-13 05 2022-06-13 06 2022-06-13 07 
##            25            25            25            25            25 
## 2022-06-13 08 2022-06-13 09 2022-06-13 10 2022-06-13 11 2022-06-13 12 
##            25            25            25            25            25 
## 2022-06-13 13 2022-06-13 14 2022-06-13 15 2022-06-13 16 2022-06-13 17 
##            25            25            25            25            25 
## 2022-06-13 18 2022-06-13 19 2022-06-13 20 2022-06-13 21 2022-06-13 22 
##            25            25            25            25            25 
## 2022-06-13 23 2022-06-13 24 2022-06-14 01 2022-06-14 02 2022-06-14 03 
##            25            25            25            25            25 
## 2022-06-14 04 2022-06-14 05 2022-06-14 06 2022-06-14 07 2022-06-14 08 
##            25            25            25            25            25 
## 2022-06-14 09 2022-06-14 10 2022-06-14 11 2022-06-14 12 2022-06-14 13 
##            25            25            25            25            25 
## 2022-06-14 14 2022-06-14 15 2022-06-14 16 2022-06-14 17 2022-06-14 18 
##            25            25            25            25            25 
## 2022-06-14 19 2022-06-14 20 2022-06-14 21 2022-06-14 22 2022-06-14 23 
##            25            25            25            25            25 
## 2022-06-14 24 2022-06-15 01 2022-06-15 02 2022-06-15 03 2022-06-15 04 
##            25            25            25            25            25 
## 2022-06-15 05 2022-06-15 06 2022-06-15 07 2022-06-15 08 2022-06-15 09 
##            25            25            25            25            25 
## 2022-06-15 10 2022-06-15 11 2022-06-15 12 2022-06-15 13 2022-06-15 14 
##            25            25            25            25            25 
## 2022-06-15 15 2022-06-15 16 2022-06-15 17 2022-06-15 18 2022-06-15 19 
##            25            25            25            25            25 
## 2022-06-15 20 2022-06-15 21 2022-06-15 22 2022-06-15 23 2022-06-15 24 
##            25            25            25            25            25 
## 2022-06-16 01 2022-06-16 02 2022-06-16 03 2022-06-16 04 2022-06-16 05 
##            25            25            25            25            25 
## 2022-06-16 06 2022-06-16 07 2022-06-16 08 2022-06-16 09 2022-06-16 10 
##            25            25            25            25            25 
## 2022-06-16 11 2022-06-16 12 2022-06-16 13 2022-06-16 14 2022-06-16 15 
##            25            25            25            25            25 
## 2022-06-16 16 2022-06-16 17 2022-06-16 18 2022-06-16 19 2022-06-16 20 
##            25            25            25            25            25 
## 2022-06-16 21 2022-06-16 22 2022-06-16 23 2022-06-16 24 2022-06-17 01 
##            25            25            25            25            25 
## 2022-06-17 02 2022-06-17 03 2022-06-17 04 2022-06-17 05 2022-06-17 06 
##            25            25            25            25            25 
## 2022-06-17 07 2022-06-17 08 2022-06-17 09 2022-06-17 10 2022-06-17 11 
##            25            25            25            25            25 
## 2022-06-17 12 2022-06-17 13 2022-06-17 14 2022-06-17 15 2022-06-17 16 
##            25            25            25            25            25 
## 2022-06-17 17 2022-06-17 18 2022-06-17 19 2022-06-17 20 2022-06-17 21 
##            25            25            25            25            25 
## 2022-06-17 22 2022-06-17 23 2022-06-17 24 2022-06-18 01 2022-06-18 02 
##            25            25            25            25            25 
## 2022-06-18 03 2022-06-18 04 2022-06-18 05 2022-06-18 06 2022-06-18 07 
##            25            25            25            25            25 
## 2022-06-18 08 2022-06-18 09 2022-06-18 10 2022-06-18 11 2022-06-18 12 
##            25            25            25            25            25 
## 2022-06-18 13 2022-06-18 14 2022-06-18 15 2022-06-18 16 2022-06-18 17 
##            25            25            25            25            25 
## 2022-06-18 18 2022-06-18 19 2022-06-18 20 2022-06-18 21 2022-06-18 22 
##            25            25            25            25            25 
## 2022-06-18 23 2022-06-18 24 2022-06-19 01 2022-06-19 02 2022-06-19 03 
##            25            25            25            25            25 
## 2022-06-19 04 2022-06-19 05 2022-06-19 06 2022-06-19 07 2022-06-19 08 
##            25            25            25            25            25 
## 2022-06-19 09 2022-06-19 10 2022-06-19 11 2022-06-19 12 2022-06-19 13 
##            25            25            25            25            25 
## 2022-06-19 14 2022-06-19 15 2022-06-19 16 2022-06-19 17 2022-06-19 18 
##            25            25            25            25            25 
## 2022-06-19 19 2022-06-19 20 2022-06-19 21 2022-06-19 22 2022-06-19 23 
##            25            25            25            25            25 
## 2022-06-19 24 2022-06-20 01 2022-06-20 02 2022-06-20 03 2022-06-20 04 
##            25            25            25            25            25 
## 2022-06-20 05 2022-06-20 06 2022-06-20 07 2022-06-20 08 2022-06-20 09 
##            25            25            25            25            25 
## 2022-06-20 10 2022-06-20 11 2022-06-20 12 2022-06-20 13 2022-06-20 14 
##            25            25            25            25            25 
## 2022-06-20 15 2022-06-20 16 2022-06-20 17 2022-06-20 18 2022-06-20 19 
##            25            25            25            25            25 
## 2022-06-20 20 2022-06-20 21 2022-06-20 22 2022-06-20 23 2022-06-20 24 
##            25            25            25            25            25 
## 2022-06-21 01 2022-06-21 02 2022-06-21 03 2022-06-21 04 2022-06-21 05 
##            25            25            25            25            25 
## 2022-06-21 06 2022-06-21 07 2022-06-21 08 2022-06-21 09 2022-06-21 10 
##            25            25            25            25            25 
## 2022-06-21 11 2022-06-21 12 2022-06-21 13 2022-06-21 14 2022-06-21 15 
##            25            25            25            25            25 
## 2022-06-21 16 2022-06-21 17 2022-06-21 18 2022-06-21 19 2022-06-21 20 
##            25            25            25            25            25 
## 2022-06-21 21 2022-06-21 22 2022-06-21 23 2022-06-21 24 2022-06-22 01 
##            25            25            25            25            25 
## 2022-06-22 02 2022-06-22 03 2022-06-22 04 2022-06-22 05 2022-06-22 06 
##            25            25            25            25            25 
## 2022-06-22 07 2022-06-22 08 2022-06-22 09 2022-06-22 10 2022-06-22 11 
##            25            25            25            25            25 
## 2022-06-22 12 2022-06-22 13 2022-06-22 14 2022-06-22 15 2022-06-22 16 
##            25            25            25            25            25 
## 2022-06-22 17 2022-06-22 18 2022-06-22 19 2022-06-22 20 2022-06-22 21 
##            25            25            25            25            25 
## 2022-06-22 22 2022-06-22 23 2022-06-22 24 2022-06-23 01 2022-06-23 02 
##            25            25            25            25            25 
## 2022-06-23 03 2022-06-23 04 2022-06-23 05 2022-06-23 06 2022-06-23 07 
##            25            25            25            25            25 
## 2022-06-23 08 2022-06-23 09 2022-06-23 10 2022-06-23 11 2022-06-23 12 
##            25            25            25            25            25 
## 2022-06-23 13 2022-06-23 14 2022-06-23 15 2022-06-23 16 2022-06-23 17 
##            25            25            25            25            25 
## 2022-06-23 18 2022-06-23 19 2022-06-23 20 2022-06-23 21 2022-06-23 22 
##            25            25            25            25            25 
## 2022-06-23 23 2022-06-23 24 2022-06-24 01 2022-06-24 02 2022-06-24 03 
##            25            25            25            25            25 
## 2022-06-24 04 2022-06-24 05 2022-06-24 06 2022-06-24 07 2022-06-24 08 
##            25            25            25            25            25 
## 2022-06-24 09 2022-06-24 10 2022-06-24 11 2022-06-24 12 2022-06-24 13 
##            25            25            25            25            25 
## 2022-06-24 14 2022-06-24 15 2022-06-24 16 2022-06-24 17 2022-06-24 18 
##            25            25            25            25            25 
## 2022-06-24 19 2022-06-24 20 2022-06-24 21 2022-06-24 22 2022-06-24 23 
##            25            25            25            25            25 
## 2022-06-24 24 2022-06-25 01 2022-06-25 02 2022-06-25 03 2022-06-25 04 
##            25            25            25            25            25 
## 2022-06-25 05 2022-06-25 06 2022-06-25 07 2022-06-25 08 2022-06-25 09 
##            25            25            25            25            25 
## 2022-06-25 10 2022-06-25 11 2022-06-25 12 2022-06-25 13 2022-06-25 14 
##            25            25            25            25            25 
## 2022-06-25 15 2022-06-25 16 2022-06-25 17 2022-06-25 18 2022-06-25 19 
##            25            25            25            25            25 
## 2022-06-25 20 2022-06-25 21 2022-06-25 22 2022-06-25 23 2022-06-25 24 
##            25            25            25            25            25 
## 2022-06-26 01 2022-06-26 02 2022-06-26 03 2022-06-26 04 2022-06-26 05 
##            25            25            25            25            25 
## 2022-06-26 06 2022-06-26 07 2022-06-26 08 2022-06-26 09 2022-06-26 10 
##            25            25            25            25            25 
## 2022-06-26 11 2022-06-26 12 2022-06-26 13 2022-06-26 14 2022-06-26 15 
##            25            25            25            25            25 
## 2022-06-26 16 2022-06-26 17 2022-06-26 18 2022-06-26 19 2022-06-26 20 
##            25            25            25            25            25 
## 2022-06-26 21 2022-06-26 22 2022-06-26 23 2022-06-26 24 2022-06-27 01 
##            25            25            25            25            25 
## 2022-06-27 02 2022-06-27 03 2022-06-27 04 2022-06-27 05 2022-06-27 06 
##            25            25            25            25            25 
## 2022-06-27 07 2022-06-27 08 2022-06-27 09 2022-06-27 10 2022-06-27 11 
##            25            25            25            25            25 
## 2022-06-27 12 2022-06-27 13 2022-06-27 14 2022-06-27 15 2022-06-27 16 
##            25            25            25            25            25 
## 2022-06-27 17 2022-06-27 18 2022-06-27 19 2022-06-27 20 2022-06-27 21 
##            25            25            25            25            25 
## 2022-06-27 22 2022-06-27 23 2022-06-27 24 2022-06-28 01 2022-06-28 02 
##            25            25            25            25            25 
## 2022-06-28 03 2022-06-28 04 2022-06-28 05 2022-06-28 06 2022-06-28 07 
##            25            25            25            25            25 
## 2022-06-28 08 2022-06-28 09 2022-06-28 10 2022-06-28 11 2022-06-28 12 
##            25            25            25            25            25 
## 2022-06-28 13 2022-06-28 14 2022-06-28 15 2022-06-28 16 2022-06-28 17 
##            25            25            25            25            25 
## 2022-06-28 18 2022-06-28 19 2022-06-28 20 2022-06-28 21 2022-06-28 22 
##            25            25            25            25            25 
## 2022-06-28 23 2022-06-28 24 2022-06-29 01 2022-06-29 02 2022-06-29 03 
##            25            25            25            25            25 
## 2022-06-29 04 2022-06-29 05 2022-06-29 06 2022-06-29 07 2022-06-29 08 
##            25            25            25            25            25 
## 2022-06-29 09 2022-06-29 10 2022-06-29 11 2022-06-29 12 2022-06-29 13 
##            25            25            25            25            25 
## 2022-06-29 14 2022-06-29 15 2022-06-29 16 2022-06-29 17 2022-06-29 18 
##            25            25            25            25            25 
## 2022-06-29 19 2022-06-29 20 2022-06-29 21 2022-06-29 22 2022-06-29 23 
##            25            25            25            25            25 
## 2022-06-29 24 2022-06-30 01 2022-06-30 02 2022-06-30 03 2022-06-30 04 
##            25            25            25            25            25 
## 2022-06-30 05 2022-06-30 06 2022-06-30 07 2022-06-30 08 2022-06-30 09 
##            25            25            25            25            25 
## 2022-06-30 10 2022-06-30 11 2022-06-30 12 2022-06-30 13 2022-06-30 14 
##            25            25            25            25            25 
## 2022-06-30 15 2022-06-30 16 2022-06-30 17 2022-06-30 18 2022-06-30 19 
##            25            25            25            25            25 
## 2022-06-30 20 2022-06-30 21 2022-06-30 22 2022-06-30 23 2022-06-30 24 
##            25            25            25            25            25
table(airseoul101$region)
## 
##   강남구   강동구   강북구   강서구   관악구   광진구   구로구   금천구 
##      720      720      720      720      720      720      720      720 
##   노원구   도봉구 동대문구   동작구   마포구 서대문구   서초구   성동구 
##      720      720      720      720      720      720      720      720 
##   성북구   송파구   양천구 영등포구   용산구   은평구   종로구     중구 
##      720      720      720      720      720      720      720      720 
##   중랑구 
##      720
summary(airseoul101$pm10)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    3.00   13.00   21.00   22.29   29.00   86.00     370
summary(airseoul101$pm2.5)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max.    NA's 
##    1.00    6.00   11.00   12.36   17.00   59.00     275
airseoul101 <- airseoul101 %>% filter(!is.na(pm10)&!is.na(pm2.5))
summary(airseoul101$pm10)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##     3.0    13.0    21.0    22.3    29.0    86.0
summary(airseoul101$pm2.5)
##    Min. 1st Qu.  Median    Mean 3rd Qu.    Max. 
##    1.00    6.00   11.00   12.34   17.00   59.00
airseoul101 %>% filter(pm10==max(pm10)) %>% select(date, region, pm10)
##            date   region pm10
## 1 2022-06-03 16 서대문구   86
airseoul101 %>% group_by(region) %>% summarise(m=mean(pm10)) %>% arrange(desc(m)) %>% head(5)
## # A tibble: 5 × 2
##   region       m
##   <chr>    <dbl>
## 1 동대문구  24.8
## 2 성동구    24.3
## 3 강북구    24.0
## 4 은평구    24.0
## 5 성북구    23.8
airseoul101 %>% mutate(pm_grade=ifelse(pm10<=30, "good", 
                                     ifelse(pm10<=81, "normal", 
                                            ifelse(pm10<=150, "bad", "worse")))) %>%
  group_by(pm_grade) %>%
  summarise(n=n()) %>%
  mutate(total=sum(n), pct=n/total*100)
## # A tibble: 3 × 4
##   pm_grade     n total     pct
##   <chr>    <int> <int>   <dbl>
## 1 bad          4 17539  0.0228
## 2 good     13650 17539 77.8   
## 3 normal    3885 17539 22.2
airseoul101 %>% filter(pm2.5==min(pm2.5)) %>% arrange(desc(pm10)) %>% head(5)
##            date   region pm10 pm2.5
## 1 2022-06-01 15   성북구   24     1
## 2 2022-06-13 24   강동구   24     1
## 3 2022-06-01 16   강동구   23     1
## 4 2022-06-01 16 서대문구   22     1
## 5 2022-06-14 11   강서구   22     1