Day 23- R語言 資料篩選&基礎運算
(前言:內個,我只是個剛接觸程式設計的小萌新,如果內文內容或程式碼寫的不對,還請各位大大指教 Orz
另外,今天用的資料也是昨天整理過的cp表格喔,另外,有些函數是要先安裝dplyr才能用的,要記得安裝喔。)
通常拿到一份資料的時候不只要做資料整理,還要做一些些篩選以及基礎運算。
首先要做的是排序資料,假設我們要R對資料做排序,可以使用order
函數進行,例如要讓PM2.5這個欄位由小排到大,可以用以下程式碼進行:
cp[order(cp$PM2.5),]
當然,這個方法可以應用到其他的欄位上,但是因為目前沒有需要把資料排序的需求,所以我就不把它儲存到cp資料表了。
接下來要做的是遺漏值的處理,通常在處理資料的時候會有幾筆資料是NA,這時候可以透過R語言的complete.cases()
函數檢查一個資料列裡面的資料完整性。如果結果為TRUE表示資料完整,如果回傳結果有FALSE則表示該列資料有NA值。如果要移除含有NA值的資料時,可以用下列程式碼執行:
cp <- cp[complete.cases(cp),]
結束後以nrow()
檢查剩餘列數,結果為953。
如果要針對特定條件瀏覽資料的話,可以使用dplyr的filter
函數,例如要檢視cp中PM2.5大於400的資料的話,可以用下列程式碼:
filter(cp, cp$PM2.5 > 400)
輸出結果如下:
其他 dyplr的函數包含:Mutate()
增加新欄位Arrange()
觀察值排序Rename()
重新命名欄位%>%
將函數串在一起執行的運算符號,可以將變數放在這個符號前面,然後在符號的另一端加上運算的元素及函數等
接下來我們來用R語言的函數量化分析這個數據。其中包含計算最小、最大數、第一、三分位數、中位數、平均數……等。以cp的PM2.5資料來說,單變量量化數據分析的程式碼如下:
table(cp$PM2.5) #計算同一數字出現的次數
range(cp$PM2.5) #計算數據範圍
quantile(cp$PM2.5) #計算四分位數
var(cp$PM2.5) #計算變異數
sd(cp$PM2.5) #計算標準差
summary(cp$PM2.5) #計算最小、最大數、第一、三分位數、中位數、平均數
輸出結果如下:
雙變量量化數據分析程式碼及結果如下(這邊以PM2.5及PM10做比較):
cov(cp$PM10, cp$PM2.5) #計算共變數
cor(cp$PM10, cp$PM2.5) #計算相關性
> cov(cp$PM10, cp$PM2.5)
[1] 7139.546
> cor(cp$PM10, cp$PM2.5)
[1] 0.8832817
這個部分其實學到這邊也就差不多了,因為很多都是套用以前學果的函數來執行資料統計,而且因為套件相容性的關係,我的電腦可以執行的套件也就是比較常用的dplyr 及ggplot等,可以使用的其他套件很少,因此這邊就沒有機會使用及做介紹了Orz。
那明天就開始用ggplot做資料視覺化吧