iT邦幫忙

第 11 屆 iT 邦幫忙鐵人賽

DAY 23
0
自我挑戰組

新手 R 語言學習紀錄系列 第 23

Day 23- R語言 資料篩選&基礎統計

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)

輸出結果如下:
https://ithelp.ithome.com.tw/upload/images/20191009/20120887voKUcpNbGO.png

其他 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) #計算最小、最大數、第一、三分位數、中位數、平均數

輸出結果如下:
https://ithelp.ithome.com.tw/upload/images/20191009/20120887Kz7R1vQ1V2.png

雙變量量化數據分析程式碼及結果如下(這邊以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做資料視覺化吧


上一篇
Day 22- R語言 匯入&整理外部檔案資料
下一篇
Day 24- R語言 ggplot2資料視覺化 Part 1- 基礎繪圖文法及qplot介紹
系列文
新手 R 語言學習紀錄30

尚未有邦友留言

立即登入留言