--- title: 'R 語言學習心得-空汙篇' disqus: hackmd --- R 語言學習心得 空汙篇 === ![downloads](https://img.shields.io/badge/download-R-brightgreen) ![grade](https://img.shields.io/badge/Grade-新手-brightgreen) ![chat](https://img.shields.io/discord/:serverId.svg) --- ## openair If you are a total beginner to this, start here! 1. Download R / Rstudio 2. Open it ! (I do all the code in R) 3. Choose a comfortable chair:kissing_heart: 4. Start learning! ---- 基礎準備 --- 1. 基本套件 : ```r install.packages('openair') install.packages('dplyr') #處理數據的function ``` 2. 下載region5air 的數據集 : ```r install.packages('region5air') # 使種方法能解決該數據集不支援R 3.6.3版本問題 install.packages('remotes') remotes::install_github("NateByers/region5air") ``` --- 檢查數據 --- ```r library(region5air) data(chicago_air) head(chicago_air) #檢查一下日期 class(chicago_air$date) ## [1] "character" // 發現是character!!!! ``` ---- 簡單日期整理 --- ```r # 使用as.POSIXct()來使日期變成YYYY-MM-DD // tz = time zone chicago_air$date <- as.POSIXct(chicago_air$date, tz = "America/Chicago") ``` [更多日期的教學](https://rpubs.com/kfrost14/SubsetSort) ---- summaryPlot() --- ```r library(openair) library(dplyr) summaryPlot(select(chicago_air, date:solar)) ``` ![](https://i.imgur.com/js1eRSa.jpg) ---- 日期問題修復方法 --- ```r #如果圖的顯示有問題的話,可能是日期的關係 #建立一個新的csv檔 在把它讀取進來並設定日期格式 write.csv(chicago_air, file = "chicago_air.csv", row.names = FALSE) chicago_air <- import(file = "chicago_air.csv", date.format = "%Y-%m-%d", tzone = "America/Chicago") ``` --- windRose() --- ```r data(chicago_wind) head(chicago_wind) #馬上就看到warning 資料// 時間顯示超怪的 #再用一次as.POSIXct() chicago_wind$datetime <- as.POSIXct(chicago_wind$datetime, format ="%Y%m%dT%H%M", tz = "America/Chicago") #改好之後用dplyr的 rename()來重新命名 #(make writing code faster by using short,intuitive names) chicago_wind <- rename(chicago_wind, date = datetime, ws = wind_speed, wd = wind_dir) ``` ---- windRose()-畫圖八 --- ```r windRose(chicago_wind, key.footer = "knots") # default is m/s #可以更改顏色 用c("color1","color2","color3","color4") # 可更改的顏色直接打colours() 來查看完整的list // 這邊提供一組範例 windRose(chicago_wind, key.footer = "knots",cols = c("yellow", "green", "blue", "black")) # 也可以更改type來看時間更短的統計情況 // year,season,weekday windRose(chicago_wind, type = "weekday", key.footer = "knots") ``` ---- windRose()-畫圖八 --- ![](https://i.imgur.com/6Sr2nLL.jpg) --- pollutionRose() --- ```r #跟剛剛的風向很像,只是改成呈現汙染物 # ozone = 臭氧 // breaks 可以設定顏色分層數值,這招同樣可以用在風速 pollutionRose(chicago_wind, pollutant = "ozone", breaks = c(0, .02, .04, .06, .07, .08)) #break 風速範例 // 不過要考慮會不會有些數值會在你設定的最小值以下 windRose(chicago_wind, type = "season", key.footer = "knots",breaks = c(0,2,4,6,8,10,20)) #汙染也可以看每個月的發展 pollutionRose(chicago_wind, pollutant = "ozone", type = "month") ``` ---- pollutionRose()-畫圖八 --- ![](https://i.imgur.com/64RkCd9.jpg) ---- pollutionRose()-畫圖八 --- ![](https://i.imgur.com/ezLuCeI.jpg) --- percentileRose() --- ```r #這個有點厲害,可以快速畫出視覺化的圖案,馬上了解汙染程度 percentileRose(chicago_wind, pollutant = "ozone", smooth =TRUE) #這邊提供一個特別一點顏色給大家參考 percentileRose(chicago_wind, pollutant = "ozone", smooth =TRUE,col = "brewer1") ``` ---- percentileRose()-畫圖八 --- ![](https://i.imgur.com/zBBZZ8G.jpg) --- timePlot() --- ```r #大家最喜歡的time series timePlot(chicago_air, pollutant = c("ozone", "temp", "solar")) #可以增加group = TRUE來讓3條線畫在同一張圖中 timePlot(chicago_air, pollutant = c("ozone", "temp", "solar"),group = TRUE) #一樣可以自訂顏色 timePlot(chicago_air, pollutant = c("ozone", "temp", "solar"),group=TRUE,cols = c("yellow", "green", "blue")) ``` --- calendarPlot() --- ```r #蠻酷的一個東西 可以在日曆上顯示風向和汙染 calendarPlot(chicago_air, pollutant = "ozone") #annote後面可以接: ws / ws / date /value #wd = 平均風速方向 / ws = 基於風速的平均風速方向 # date = 幾月幾號 / value = 日平均 calendarPlot(chicago_wind, pollutant = "ozone", annotate = "ws") #顏色選擇可以有點變化 以下舉例 calendarPlot(chicago_wind, pollutant = "ozone", annotate = "wd",cols ="jet") calendarPlot(chicago_wind, pollutant = "ozone", annotate = "wd",cols ="heat") calendarPlot(chicago_wind, pollutant = "ozone", annotate = "wd",cols ="increment") ``` ---- calendarPlot()-畫圖八 --- ![](https://i.imgur.com/PFi5GIz.jpg) ---- calendarPlot()-畫圖八 --- ![](https://i.imgur.com/e0Qe80s.jpg) ---- calendarPlot()-畫圖八 --- ![](https://i.imgur.com/kiCJUEV.jpg) --- ## More tutorial / note 1. [my coding-blog](fatcatcat-lab.blogspot.com) 2. [my movie-blog](fatcatcat-movie.blogspot.com) ###### tags: `R` `beginner` `cat` `tutorial`