第4講:複雜數據處理與分析

看了這次課程,解決了很多問題,對於真正的使用R來做數據分析提供了比較系統的方法,在此基礎上往下繼續學習就方便多了!本講主要講了四塊內容,解決了一個問題,並演示了如何在Rstudio中建項目。四塊內容如下:

  1. 如何編寫函數;
  2. 數據處理:使用dpylr進行數據分析,使用ggplot2進行結果展示
  3. 如何編寫業務模塊;

  4. 如何調試代碼。

解決的一個問題是用nycflight13包中的航班數據分析航班航行距離與延誤時間之間的關係。

1 如何編寫函數

什麼是 函數(方法):在數學中,一個函數是描述每個輸入值對應唯一輸出值的這種對應關係,符號通常為f(x)。在英文中讀作f of x,但在中文中則常讀作fx。其中x為自變數,y=f(x)為因變數(或稱應變數)。包含某個函數所有的輸入值的集合被稱作這個函數的定義域,包含所有的輸出值的集合被稱作值域。

自定義編寫函數例子

編寫 函數的模板

控制語句

a.循環語句

用於重複性的工作

1) for循環語句

2) while循環語句

b.條件語句

2、使用dpylr和ggplot2進行數據處理

A:數據預分析步驟

1)理解數據:航班數據

2)數據導入

本文實例導入的是載入包中的數據集,不需要從外部文檔或資料庫導入。

3)數據預處理

a.選擇子集

確定分析目標:航班航行距離與延誤時間的關係

依據分析目標(航班日期、出發延遲時間、到達延遲時間、航行距離)選擇子集

代碼:myFlight<-select(flights,year,month,day,dep_delay,arr_delay,dest)

結果顯示:

b.列名重命名

#列名重命名

myFlight<-rename(myFlight,destination = dest)

c.缺失數據處理

處理前有336,776筆資料

進行處理代碼:myFlight<-filter(myFlight,!is.na(dep_delay),!is.na(arr_delay))

處理後有 327,346筆資料,說明有9430筆資料中dep_delay或arr_delay是缺失的

d.日期值處理

查找某個日期的航班:spdayflight<-filter(myFlight,month==12,day==15)

e.數據類型轉換

f.數據排序

#排序 默認是升序排序

myFlight<-arrange(myFlight,dep_delay)

#降序排序

myFlight1<-arrange(myFlight,desc(dep_delay))

4)數據計算

5)數據顯示(結果顯示)

#數據顯示

#散點圖

library("ggplot2")

pointview<-ggplot(delay)+

geom_point(aes(x = dist, y = delay))+

geom_smooth(aes(x = dist, y = delay))

3、如何編寫業務模塊

A:項目:模塊化

1) 視圖模塊(view)

2) 業務邏輯模塊(service)

3) 數據層模塊(db)

4) 公關模塊(util)

5) 公共數據(data)

6) 日誌模塊(log)

7) 數據結果輸出模塊(output)

4、代碼如何調試

1)寫測試模塊,先source要調試的代碼塊

2)使用debug(f)進行調試,把游標放到代碼前面,點點run就可以一步步執行

3)在測試模塊中調用函數進行調試

Browse[2]中可以查看函數中的參數是否正確 調用,i沒有找到是因為還沒有執行到裡面。

4)在調試欄中控制調試是如何執行的,也可在控制台使用命令控制

next與命令n同樣的功能

綠色箭頭指示當前執行到的代碼行,所以當前 i 是第一次循環,值為1

多讓for循環執行幾次再查看 i 值,其值變為4

關於調試的研究暫時到此但不為止,在以後的代碼中要不斷實踐,提升代碼質量!

一切都有套路,遵循一定的原則和方法,不斷實踐思考,我們就能真正做好複雜數據的處理分析。


推薦閱讀:

基本粒子路馳:新零售的核心是基於數字化的連接
大數據那些事(18):DoNotEvil公司的程序猿味
論一個CDO的自我修養:神秘的首席數據官究竟有哪些操作
DSP機器學習及演算法機制_上【技術類】
Big Data (Specialization)

TAG:数据分析 | 大数据 |