2015-2016賽季NBA賽事比分簡(jiǎn)單數(shù)據(jù)分析
數(shù)據(jù)來源:某數(shù)據(jù)分析QQ群(群友下載于NBA官方網(wǎng)站)
原始數(shù)據(jù)比較簡(jiǎn)單,依次包含了比賽日期、比賽開始時(shí)間、客隊(duì)、客隊(duì)得分、主隊(duì)、主隊(duì)得分、個(gè)人比賽數(shù)據(jù)(Box Score)、是否有加時(shí)賽、備注等。雖然數(shù)據(jù)簡(jiǎn)單,但依然有非常大的分析空間。本文為了實(shí)踐之前學(xué)習(xí)的R語(yǔ)言相關(guān)內(nèi)容,只做了一項(xiàng)非常簡(jiǎn)單的數(shù)據(jù)分析。

導(dǎo)入數(shù)據(jù)
數(shù)據(jù)為CSV文件,直接使用R語(yǔ)言導(dǎo)入CSV文件的方法。
其中,第二個(gè)參數(shù)header默認(rèn)為FALSE,即數(shù)據(jù)框的列名為“V1,V2...”,設(shè)置為TRUE時(shí)以CSV文件的第一行作為列名。參數(shù)sep是分隔數(shù)據(jù)的分隔符,默認(rèn)為空格,可以設(shè)置為逗號(hào)(sep=,),分號(hào)(sep=;)和制表符(tab)。參數(shù)colClasses 為每一列指定一個(gè)類,為了方便處理,先將所有的數(shù)據(jù)都指定為字符型(character)。由于字符型數(shù)據(jù)在讀入時(shí)自動(dòng)轉(zhuǎn)換為因子,所以參數(shù)stringAsFactors=FALSE是為了防止導(dǎo)入的數(shù)據(jù)進(jìn)行任何的因子轉(zhuǎn)換。
具體可查閱《R語(yǔ)言實(shí)戰(zhàn)(第2版)》第二章中“2.3.2 從帶分隔符的文本文件導(dǎo)入數(shù)據(jù)”相關(guān)內(nèi)容。關(guān)于如何導(dǎo)入Excel數(shù)據(jù)可以參考文章【R語(yǔ)言】:導(dǎo)入Excel數(shù)據(jù) 和【R語(yǔ)言】:簡(jiǎn)單數(shù)據(jù)處理分析。
數(shù)據(jù)預(yù)處理
一、重命名列名
為了方便處理,在導(dǎo)入數(shù)據(jù)時(shí)保留了文件中的第一行作為列名。

首先對(duì)原始數(shù)據(jù)進(jìn)行初步分析:第一列比賽日期(Date)的列名無需更改;第二列為比賽開始時(shí)間,原列名包含有英文縮寫ET,推測(cè)其為美國(guó)東部時(shí)間East Time的縮寫,決定把列名更改為Start_time;第三列為客場(chǎng)或中立球隊(duì),更改為V_team;第四列是客隊(duì)得分,更改為V_PTS;第五列是主場(chǎng)或中立球隊(duì),更改為H_team;第六列是主隊(duì)得分,更改為H_PTS;第七列是詳細(xì)的個(gè)人比賽數(shù)據(jù),應(yīng)該有內(nèi)鏈,但沒有抓取到,隨后刪除;第八列標(biāo)記了是否進(jìn)行了加時(shí)賽(如果有是OT,沒有為空);第九列是備注,全部為空,隨后刪除。
二、刪除無效數(shù)據(jù)和缺失值
1、刪除第七列和第九列的無效數(shù)據(jù)
可參考文章:【R語(yǔ)言】:基本數(shù)據(jù)管理(2)
2、刪除觀測(cè)的缺失值
比賽日期、客隊(duì)、客隊(duì)得分、主隊(duì)、主隊(duì)得分這五個(gè)列向量為空的數(shù)據(jù)都需要?jiǎng)h除。
應(yīng)該能用更簡(jiǎn)單的代碼來實(shí)現(xiàn),但暫時(shí)不清楚,以后遇到了再補(bǔ)充更改。
三、處理日期、數(shù)據(jù)類型轉(zhuǎn)換、數(shù)據(jù)排序
1、處理日期
比賽日期這一列包含的內(nèi)容為星期(縮寫)+月(縮寫)+日(數(shù)字)+年(數(shù)字),利用函數(shù)str_split_fixed()將該列拆分為星期、月日年兩列。
這兩列數(shù)據(jù)在隨后數(shù)據(jù)分析中都有用,將在分析之前再跟實(shí)際需求分別賦值到數(shù)據(jù)框中。

2、數(shù)據(jù)類型轉(zhuǎn)換
將比賽分?jǐn)?shù)轉(zhuǎn)換為數(shù)值格式,以便于之后的相關(guān)計(jì)算。
3、數(shù)據(jù)排序
此外,原始數(shù)據(jù)已經(jīng)按照比賽時(shí)間的升序排列,目前暫時(shí)不變,之后將根據(jù)需要另做排序。
簡(jiǎn)單數(shù)據(jù)分析
NBA整個(gè)賽季的比賽非常多,整個(gè)賽季總共近1300場(chǎng)比賽。可一個(gè)賽季下來,一周7天從星期一到星期天,到底聯(lián)盟更喜歡把比賽安排到哪一天呢?會(huì)是周五晚上,還是周六晚上呢?還是其他某天晚上呢?
運(yùn)行代碼后可得

1、統(tǒng)計(jì)每天比賽的數(shù)量
2、新建數(shù)據(jù)框,包含星期和天數(shù)(參考【R語(yǔ)言】:基本數(shù)據(jù)管理(1))
3、2015-2016賽季NBA一周每天的比賽數(shù)量
其中,關(guān)于函數(shù)text()和函數(shù)minor.tick()的詳細(xì)用法可參考:【R語(yǔ)言】:圖形初階(3)

4、簡(jiǎn)單分析
NBA整個(gè)2015-2016賽季(包含常規(guī)賽和季后賽),在一周內(nèi)周三晚上的比賽數(shù)量最多(竟然不是周末),其次是周五晚上,周一晚上和周六晚上的比賽數(shù)量一樣多,并列第三。
后記
NBA的各項(xiàng)數(shù)據(jù)是一個(gè)非常大的數(shù)據(jù)寶藏,今天這個(gè)非常簡(jiǎn)單的數(shù)據(jù)分析的小例子,僅僅利用非常少量的數(shù)據(jù)以及非常簡(jiǎn)單的數(shù)據(jù)源。
稍微展開,就能想到更多復(fù)雜的分析,比如:
所有NBA球隊(duì)常規(guī)賽(季后賽)主場(chǎng)(客場(chǎng))平均得分(失分);
某支球隊(duì)常規(guī)賽主場(chǎng)平均得分(失分)、客場(chǎng)平均得分(失分),季后賽主場(chǎng)平均得分(失分)、客場(chǎng)平均得分(失分);
某支球隊(duì)常規(guī)賽(全部、主場(chǎng)、客場(chǎng))的勝率、季后賽(全部、主場(chǎng)、客場(chǎng))的勝率、包含加時(shí)賽(全部、主場(chǎng)、客場(chǎng))勝率、得分(失分)上百(未上百)的比賽勝率;
某支球隊(duì)周幾的比賽勝率最高、幾點(diǎn)開始的比賽勝率最高。NBA數(shù)據(jù)幾乎擁有無限多可以分析的點(diǎn)以及可以深挖的內(nèi)容,并且NBA各支球隊(duì)目前也非常重視各項(xiàng)數(shù)據(jù),并且用于指導(dǎo)球隊(duì)的技戰(zhàn)術(shù)提升和比賽。
掃描二維碼推送至手機(jī)訪問。
版權(quán)聲明:本文由財(cái)神資訊-領(lǐng)先的體育資訊互動(dòng)媒體轉(zhuǎn)載發(fā)布,如需刪除請(qǐng)聯(lián)系。