6 資料處理與清洗| 資料科學與R語言
文章推薦指數: 80 %
介紹如何使用R語言完成資料讀取、處理、分析與呈現,以及大數據技術與R的整合. ... 在所有的程式語言中,只要用到字串比對與字串取代等字串相關功能,都會用到正規表示 ...
資料科學與R語言
1R語言101
1.1什麼是R語言
1.2函數使用
1.3變數設定
1.4執行視窗
1.5資料型態
1.5.1數值numeric
1.5.2字串character
1.5.3布林變數logic
1.5.4日期(Date)
1.6基本運算子
1.6.1數學基本運算
1.6.2邏輯運算
1.7錯誤訊息
1.8Help
2R資料結構
2.1向量vector
2.1.1快速產生向量函數
2.1.2向量運算
2.2因子factor
2.3列表list
2.3.1列表資料擷取
2.3.2列表資料編輯設定
2.4矩陣matrix
2.5資料框data.frame
2.6資料表data.table
2.7資料屬性查詢函數
3控制流程
3.1條件判斷
3.1.1if-else敘述
3.1.2if-elseif-else
4函數
4.1為什麼需要函數
4.2函數組成
4.3函數命名原則
4.4函數範例
4.5函式編程Functionalprogramming
4.6purrr
4.7map2family
4.8參考資料
5資料讀取與匯出
5.0.1純文字資料(無分隔)
5.0.2其他讀檔注意事項
5.0.3API(Applicationprogramminginterfaces)
5.0.4XML可延伸標記式語言
5.0.5網頁爬蟲Webscraping
5.1Facebook資料擷取
5.1.1GraphAPIinR
5.1.2Rfacebookpackage
5.2資料匯出
5.2.1文字檔.txt
5.2.2CSV檔.csv
5.2.3R物件.rds
6資料處理與清洗
6.1TidyData
6.2資料型別轉換處理
6.2.1資料型別檢查
6.2.2資料型別轉換
6.3文字字串處理
6.3.1基本處理
6.3.2搜尋字串
6.3.3正規表示式(RegularExpression)
6.4子集Subset
6.4.1一維資料(向量)
6.4.2二維資料
6.5排序
6.5.1sort向量排序
6.5.2order
6.6資料組合
6.7資料結合(Join)
6.8長表與寬表
6.9遺漏值處理
6.10綜合練習範例Casestudy
6.10.1載入資料
6.10.2資料總覽
6.10.3資料預覽
6.10.4資料排序後篩選
6.10.5欄位值篩選
6.10.6字串條件搜尋後篩選
7探索式資料分析
7.1什麼是探索式資料分析
7.2data.table
7.2.1i觀察值篩選邏輯
7.2.2j欄位選擇運算
7.2.3by分組依據
7.2.4參考文件與資源
7.3dplyr
7.3.1select()
7.3.2filter()
7.3.3mutate()
7.3.4summarise()
7.3.5group_by()
7.3.6arrange()
7.3.7rename()
7.3.8參考文件與資源
8資料視覺化
8.1資料視覺化的目的
8.2ggplot2簡介
8.2.1qplot()
8.2.2ggplot()
8.3ggplot2+地圖
8.3.1Choroplethmap面量圖
8.3.2ggmap()
8.4Taiwan的面量圖
8.4.1ggmap+面量圖
8.5Treemap
8.6參考文件與資源
9互動式資料呈現
9.1ggvis
9.2Plot.ly
9.3Shiny簡介
10資料探勘
10.1什麼是資料探勘
10.2Regression迴歸
10.2.1LinearRegression線性迴歸
10.2.2LogisticRegression羅吉斯迴歸
10.2.3最佳模型篩選
10.3DecisionTrees決策樹
10.4Clustering分群
10.4.1Hierarchicalclustering階層式分群
10.4.2K-meansclustering
10.5AssociationRules關聯式規則
10.6OpenSourcePackages
10.6.1Prophet
10.6.2TensorFlow
10.6.3MXNet
10.7模型驗證
10.7.1Regression迴歸驗證
10.7.2LogisticRegression邏輯迴歸驗證
10.7.3DecisionTrees決策樹驗證
10.8CaseStudy
10.9參考資料
11從小數據到大數據分析
11.1R+Hadoop
11.2RHadoop安裝測試流程(Cloudera)
11.2.1系統/軟體版本資訊
11.2.2參考資料
11.2.3安裝步驟
11.2.4測試前,先解決權限問題
11.2.5測試
11.2.6安裝RStudioServer
11.3RHadoopMapReduce:easywordcount
11.4R+Spark
12軟體安裝介紹
12.1R安裝
12.2RStudio安裝
12.3RStudio使用簡介
12.3.1專案
12.3.2RStudio介面
13教學影片資訊
13.1教學影片頻道連結
13.2完整版播放清單
13.3速成版播放清單
作者資訊
References
Publishedwithbookdown
資料科學與R語言
6資料處理與清洗
6.1TidyData
Eachcolumnisavariable.Eachrowisanobservation.
一個欄位(Column)內只有一個數值,最好要有凡人看得懂的ColumnName
不同的觀察值應該要在不同列(Row)
一張表裡面,有所有分析需要的資料
如果一定要多張表,中間一定要有index可以把表串起來
Onefile,onetable
6.2資料型別轉換處理
在資料型態章節Chapter1.5中,曾介紹數值(numeric)、字串(character)、布林變數(logic)以及日期(Date)等資料型態,在此章節中將介紹如何檢查變數型別與各型別的轉換。
6.2.1資料型別檢查
使用以下is.函數檢查資料型別,回傳布林變數,若為真,回傳TRUE
是否為數字is.numeric(變數名稱)
是否為文字is.character(變數名稱)
是否為布林變數is.logical(變數名稱)
num?@[]^_`{|}~.
stringVector48
##102NBAJaeCrowderBOSSF732310
##213NBAR.j.HunterBOSSG36319
##228NBAJonasJerebkoBOSPF781178
##229NBAAmirJohnsonBOSPF791798
##300NBAJordanMickeyBOSPF1659
##340NBAKellyOlynykBOSC691396
##382NBATerryRozierBOSPG39310
##400NBAMarcusSmartBOSPG611666
##416NBAJaredSullingerBOSPF811917
##422NBAIsaiahThomasBOSPG822647
##433NBAEvanTurnerBOSSG812270
##471NBAJamesYoungBOSSG29200
##476NBATylerZellerBOSC60714
##FieldGoalsMadeFieldGoalsAttemptedThreesMadeThreesAttempted
##604561018147406
##892422
##102359812122363
##21336981963
##22811828643108
##2292504271043
##30082200
##34025355685210
##38229106627
##40018452961241
##41635180729104
##4225911382167465
##4333437532083
##4711136626
##47613829000
##FreeThrowsMadeFreeThrowsAttemptedOffensiveReboundsTotalReboundsAssists
##609612348220158
##8900010
##10219623970373135
##2136723713
##22861787728862
##22969121178505137
##3005106131
##3409612872281105
##382810246337
##40012916676255186
##416103161194673187
##42247454446243509
##43314817950397359
##471144269
##476881086217829
##StealsTurnoversBlocksPersonalFoulsDisqualificationsTotalPoints
##601171091916421155
##89010006
##102126833519841036
##2131411429097
##2282052241372340
##2295294832141579
##30001115021
##3405274331633687
##382619123072
##4009180181831558
##41675102472092834
##42291220916711823
##43380169281390854
##47165117029
##476104622971364
##TechnicalsEjectionsFlagrantFoulsGamesStarted
##6000072
##890000
##10230073
##2130000
##2281000
##22900076
##3000000
##3401008
##3820000
##40020010
##41620073
##42290079
##43320012
##4710000
##4760003
6.10.6字串條件搜尋後篩選
當然也可以結合字串搜尋函數grepl(),將所有名字裡有“James”的選手資料取出
NBA1516[grepl("James",NBA1516$Name),]
##LeagueNameTeamPositionGamesPlayedTotalMinutesPlayed
##15NBAJamesAndersonSACSG51721
##132NBAJamesEnnisNORSF22329
##178NBAJamesHardenHOUSG823121
##222NBALebronJamesCLESF762710
##231NBAJamesJohnsonTORPF57924
##239NBAJamesJonesCLESG48466
##286NBAJamesMcadooGSWSG41265
##471NBAJamesYoungBOSSG29200
##FieldGoalsMadeFieldGoalsAttemptedThreesMadeThreesAttempted
##15671782386
##132541132658
##1787101617236656
##222737141687282
##2311142402066
##2395914341104
##286458412
##4711136626
##FreeThrowsMadeFreeThrowsAttemptedOffensiveReboundsTotalReboundsAssists
##152229138641
##1322534214221
##17872083763502612
##222359491111565512
##23139682812667
##239212685014
##2862649305817
##471144269
##StealsTurnoversBlocksPersonalFoulsDisqualificationsTotalPoints
##15214214540179
##13216195281159
##1781383745122912376
##2221042494914301920
##231295433840287
##239111310500180
##28610168390117
##47165117029
##TechnicalsEjectionsFlagrantFoulsGamesStarted
##1500015
##1320005
##17820082
##22230076
##23100032
##2391000
##2860001
##4710000
References
Eugster,ManuelJ.A.2013.SportsAnalytics:InfrastructureforSportsAnalytics.https://CRAN.R-project.org/package=SportsAnalytics.
Spinu,Vitalie,GarrettGrolemund,andHadleyWickham.2020.Lubridate:MakeDealingwithDatesaLittleEasier.https://CRAN.R-project.org/package=lubridate.
Wickham,Hadley.2019b.Stringr:Simple,ConsistentWrappersforCommonStringOperations.https://CRAN.R-project.org/package=stringr.
Wickham,Hadley.2020.Reshape2:FlexiblyReshapeData:ARebootoftheReshapePackage.https://CRAN.R-project.org/package=reshape2.
Wickham,Hadley,andLionelHenry.2020.Tidyr:TidyMessyData.https://CRAN.R-project.org/package=tidyr.
延伸文章資訊
- 1R 語言字串處理[筆記] - Jay
上課學習R語言資料探勘,寫成筆記。. “R 語言字串處理[筆記]” is published by Jay. ... str_replace : 取代文字,但是沒蓋掉原本,需要指定變數給它,如第二行.
- 2Chapter 10 文字與字串資料處理| R 資料科學與統計 - Bookdown
{R} 內有許多函數可以處理文字型態的資料物件或文字資料(Character Data), 常用之文字函式有 paste() , substr() , substring() , grep() ...
- 3R教學第9章:尋找和取代資料
下一篇教學,我們要教你如何把處理完畢的資料,輸出成一份CSV檔,以及把你寫的R script存成以後可以重複使用的程式檔。 sixToTen R r language data ...
- 4R學習筆記:資料清理Cleaning Data (2)
str_pad():將0補上字串資料 str_detect():偵測向量資料中的特定字串 str_replace() : 尋找並取代文字值(例如用-取代e,"one apple"會變成on- a...
- 5Replace 取代· Begin to Learn R - begin4learn
如同在修訂文件時常用的取代功能,我們常需要在文字中將符合某些特徵或關鍵字的部分搜尋出來 ... R 語言中使用 ... 如何掌控資料:關於文字在Python 與R 語言處理文字 ...