如何用 4 行 R 語句,快速探索你的資料集?

王樹義發表於2018-07-23

如何用 4 行 R 語句,快速探索你的資料集?

用最簡單的方式,完成探索性分析。

痛點

實踐中,大量資料分析時間,都會花在資料清洗與探索性資料分析(Exploratory Data Analysis, EDA)。即缺失值統計處理,和變數分佈視覺化。

資料採集過程中,可能有缺失。

你需要了解缺失資料的多少,以及它們可能對後續分析造成的影響。

如果某個變數的缺失資料少,乾脆把含有缺失值的行(觀測)扔掉就算了,免得影響分析精確程度。

但如果缺失資料太多,都扔掉就不可行了。你需要考慮如何進行填補。是用0,用 "unknown" ,還是使用均值或中位數?

另外,你可能還想看看每個特徵變數的分佈情況。

例如定量資料是正態分佈,還是冪律分佈?這對你後面合理進行研究假設,都是有影響的。

即便是對於分類資料,你也要了解獨特取值(unique values)的個數,以便做到心中有數。

這些工作很有必要。但是實現起來,卻一直很麻煩。即便是 R 這樣專門給統計工作者使用的軟體,從前也需要呼叫若干條命令(一般跟特徵變數個數成正比),才能完成。

我最近發現了一款 R 包,可以非常方便地進行資料集總結概覽。只要一條語句,就幫你完成探索性資料分析中的許多步驟。

通過本文,我把它分享給你。希望對你的資料分析工作有幫助。

演示

你不需要安裝任何軟體。只需要點選這個連結t.cn/Rg1JFfo),就可以使用 R 程式設計環境了。

如何用 4 行 R 語句,快速探索你的資料集?

等準備工作完畢,你會看到,瀏覽器裡面開啟了一個 RStudio 介面。

如何用 4 行 R 語句,快速探索你的資料集?

點選左上角的 File -> New File ,選擇選單裡面的第一項 R Script

如何用 4 行 R 語句,快速探索你的資料集?

此時,你會看到左側分欄一個空白編輯區域開啟,可以輸入語句了。

如何用 4 行 R 語句,快速探索你的資料集?

輸入之前,我們先給檔案起個名字。點選 File -> Save 按鈕。

如何用 4 行 R 語句,快速探索你的資料集?

在新出現的對話方塊裡面,輸入 demo ,回車。

如何用 4 行 R 語句,快速探索你的資料集?

我們一共需要如下輸入4條語句。你可以直接複製貼上進編輯區域。

library(tidyverse)
library(summarytools)
flights <- read_csv("https://gitlab.com/wshuyi/demo-data-flights/raw/master/flights.csv")
view(dfSummary(flights))
複製程式碼

分別解釋一下含義。其實前3行語句,都是準備工作。真正總結概覽功能,只需第4條。

第一行: tidyverse 是一個非常重要的庫。可以說它改進了 R 語言處理資料的生態環境。而這個庫中的大部分工具,都是 Hadley Wickham 一己之力推動和完成的。

如何用 4 行 R 語句,快速探索你的資料集?

第二行: summarytools 是我們今天用來總結概覽資料的軟體包名稱。

第三行: 使用 read_csv 做資料讀入。我們是從這個網址讀取的,並且把資料儲存到 flights 變數中。

你可以點選該連結t.cn/Rg1XCCN),下載原始資料 csv 檔案,檢視其內容。

如何用 4 行 R 語句,快速探索你的資料集?

這個資料集,來自於 Hadley Wickham 的 github 專案,名稱叫做 nycflights13

如何用 4 行 R 語句,快速探索你的資料集?

它記錄的是 2013 年,紐約市3大機場(分別為: JFK 肯尼迪國際機場、 LGA 拉瓜迪亞機場,和 EWR 紐瓦克自由國際機場)起飛的航班資訊。

具體的記錄資訊(特徵列),包括起飛時間、到達時間、延誤時常、航空公司、始發機場、目的機場、飛行時長,和飛行距離等。

這個表格,看起來已經是很清晰的了。但是,由於觀測(行)數量眾多,我們很難直觀分析出缺失值的情況,以及資料的分佈等資訊。

第4條語句,就是負責幫助我們更好地檢視和探索資料用的。它用 dfSummary 函式處理 flights 資料框的內容,然後用 view 函式直觀輸出給使用者。

點選 Code -> Run Region -> Run All 命令,執行程式碼。

如何用 4 行 R 語句,快速探索你的資料集?

執行中,可能會有一些警告資訊。別理它就好。

如何用 4 行 R 語句,快速探索你的資料集?

分析的結果,在右下方的顯示區域。因為區域比較小,內容卻很多,看不全面。

你可以點選這個區域左上方第三個按鈕 Show in new window ,在瀏覽器新視窗開啟完整的顯示結果。

如何用 4 行 R 語句,快速探索你的資料集?

解讀

因截圖篇幅關係,一張圖中,無法顯示完整資訊。就著第一屏,給你講解一下都有哪些分析結果。

  • 第一列是序號。不用理會。
  • 第二列是變數名稱,以及變數的型別。例如 integer 指的是整數型別的定量資料;character 是字串型別,也就是分類資料。
  • 第三列是統計結果。對於定量資料,直接彙報最大、最小、均值、中位數等資訊。
  • 第六列是有效值個數;與其互補,第七列是缺失值個數。
  • 第四列是頻數。顯示每一個變數對應獨特取值出現的情況。
  • 第五列最有意思,直接繪製分佈統計圖形。

我們翻到下一頁看看。

如何用 4 行 R 語句,快速探索你的資料集?

可以看出,起飛延誤是個典型的冪律分佈。

到達延誤,和的起飛延誤分佈長得很像,想想似乎很有道理。

但到達延誤的分佈類別是什麼呢?為什麼二者會有差異呢?

這個問題,供你思考。

探索

本文介紹的 summarytools 包的功能,並不只是對資料集做總體總結概覽。

它還可以進行變數之間的關係展示。例如你想知道3大機場起飛的航班,對應航空公司的比例是否有差別。可以用一條語句,就得到這樣的一張分析表格:

如何用 4 行 R 語句,快速探索你的資料集?

想自己動手,做出這樣一張分析表格?請你點選這個連結(github.com/dcomtois/su…),閱讀文件,瞭解 summarytools 的更多功能。

如何用 4 行 R 語句,快速探索你的資料集?

喜歡請點贊。還可以微信關注和置頂我的公眾號“玉樹芝蘭”(nkwangshuyi)

如果你對資料科學感興趣,不妨閱讀我的系列教程索引貼《如何高效入門資料科學?》,裡面還有更多的有趣問題及解法。

相關文章