第4講:複雜數據處理與分析
看了這次課程,解決了很多問題,對於真正的使用R來做數據分析提供了比較系統的方法,在此基礎上往下繼續學習就方便多了!本講主要講了四塊內容,解決了一個問題,並演示了如何在Rstudio中建項目。四塊內容如下:
- 如何編寫函數;
- 數據處理:使用dpylr進行數據分析,使用ggplot2進行結果展示
- 如何編寫業務模塊;
- 如何調試代碼。
解決的一個問題是用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同樣的功能
關於調試的研究暫時到此但不為止,在以後的代碼中要不斷實踐,提升代碼質量!
一切都有套路,遵循一定的原則和方法,不斷實踐思考,我們就能真正做好複雜數據的處理分析。
推薦閱讀:
※基本粒子路馳:新零售的核心是基於數字化的連接
※大數據那些事(18):DoNotEvil公司的程序猿味
※論一個CDO的自我修養:神秘的首席數據官究竟有哪些操作
※DSP機器學習及演算法機制_上【技術類】
※Big Data (Specialization)