標籤:

航班航行距離與延誤時間有什麼關係?

在進行航班航行距離與延誤時間有什麼關係之前,先來研究一下如何來編寫函數。

一、如何編寫函數

首先是自定義函數,簡單說就是自己定義一個函數,包括功能、輸入、輸出。

例如下圖:

圖中,add是功能,xy是輸入,z是輸出。

接著是控制語句,包括循環語句和條件語句。例如:

上圖是循環語句,使用了for和while循環,使用循環語句需要注意提供一個循環停止的條件,不然會一直循環下去。

上圖是條件語句,也就是說滿足定義的條件,輸出一個結果。

最後,是將「自定義函數+控制語句」結合起來:

(1)練習:每天吃3頓飯,一頓飯5元,飯卡有1000元,判斷是否需要去銀行取錢。

(2)下面這道題,是參考社群的小夥伴修改的代碼進行練習。

(3)然後我根據小夥伴修改的代碼,再想想如果我想知道哪天需要充卡,可以怎麼弄呢?

至此,對於自定義函數和控制語句有了更進一步的認識了。

現在開始進行本文的主題內容,航班航行距離與延誤時間有什麼關係?

二、數據處理

在進行數據處理之前,我們需要捋一捋數據分析的步驟:

1、理解數據

2、數據導入

3、數據預處理

4、數據計算

5、數據顯示。

2.1理解數據:航班數據

航班數據主要有飛行的年月日、起飛延誤時間、到達延誤時間、航行里程數、目的地等等。

2.2數據導入

R中有航班數據,我們需要安裝nycflights13包導入數據,同時需要安裝dplyr包做數據預處理使用。

從圖中可以看出一共有336776行、19列數據。

2.3數據預處理步驟

2.3.1選擇子集

在這裡我們的分析目標是航班航行距離與延誤時間的關係,所以只需要選擇year(年)、month(月)、day(日)、dep_delay(起飛延誤時間)、arr_delay(到達延誤時間)、distance(航行里程)、dest(目的地)等數據。

選擇子集可以用select()函數。

有三種方法可以使用:

方法一:直接寫需要的列名:

方法二:連續的列如何選擇?

方法三:如何去掉不需要的列?

方法四:模糊查詢

1)starts_with("abc")

2)ends_with("xyz")

3)contains("ijk")

4)matches("(.)\1")

2.3.2列名重命名

因為dest這個名稱不能直觀表達出它的含義,所以將dest的列名換成destination。

2.3.3刪除缺失數據

dplyr包查找數據,使用filter()函數完成查找。

原來的數據是336766行數據,刪除缺失數據後變成327336行數據行數據。

2.3.4數據排序

dplyr包數據排序,使用arrange()函數完成查找,默認是升序,若為降序,標註desc。

2.3.5數據計算

數據處理模式有Split+Apply+Combine,其中:

Split(數據分組):可以指定目標變數,將數據進行分組。由於本次分析的目標是找出航行距離與到達延誤時間的關係,所以我們得根據到達目的地對數據進行分組,從而計算出不同目的地的平行航行距離以及平均延誤時間;

Apply(應用函數):對不同組的數據,應用相應函數獲取所需統計指標。

Combine(組合結果):將計算後的統計指標值與第一步當中對應的分組進行組合。

對於使用dplyr包進行數據計算,分組函數group_by()和組合函數summarise(),其中分組函數group_by()對應數據處理模式中的Split,組合函數summarise()對應數據處理模式中的Apply+Combine。

1)數據分組,使用group_by()函數。

根據目的地共分成了104組,也就是有104個目的地。

2)進行應用函數和組合結果步驟,使用summarise()函數。

計算同一目的地的航班數量、平均航行距離、平均延誤時間。

為了保證分析結果的準確性,我們需要進行噪音數據的移除,在這裡將航班數量少於20個的數據移除,使用filter()函數進行移除噪音數據。

補充一個管道知識:%>%。

管道:%>%是最常用的一個操作符,就是把左側的數據或表達式,傳遞給右側的函數調用或表達式進行運行,可以連續操作就像一個鏈條一樣。

使用管道,上面的代碼可以更改為:

代碼清爽很多。

2.3.6數據顯示

使用ggplot2函數繪製圖表,使用前需要安裝ggplot2包。繪圖模板:

ggplot(data = <DATA>)+<GEOM_FUNCTION>(mapping = aes(<MAPPINGS>)

前半部分是創建畫板,後面部分是添加圖層,其中「+」不可以省略。

到這裡,數據分析就結束了,從圖可以看出,航班延誤時間和航班距離不是線性關係,也就是說兩者不存在關係。
推薦閱讀:

股票分析與資產組合(python)
鑽石價格的預測
入門機器學習到底需要多少數學知識
R語言實戰之簡單數據處理

TAG:数据分析 |