获得和清洗数据:

1.从网络上抓取数据

执行上面的命令可以创建一个存储32个球队在2013赛季所有进攻统计数据的数据框offense

2.首先注意到下载的球队数据存在很多空白列,而且为了确保数据格式正确,我们需要先进行数据清洗工作。如下所示,我们清除空白的列,并给每列赋予我们需要的数据类型。

3.通过同样的方式获取防守数据。

readHTMLTable函数会下载整个网页,所以我们通过在命令的末尾加上[[7]]来选择我们需要的第7列元素。

R语言中的paste()函数实现字符串的连接。如果你对操作数据陌生,连接指的是将两个字符串拼接在一起。我们利用paste函数来连接下载数据的URL和需要获取数据的年份,从而可以仅仅通过改变year的数值来改变整个下载数据的URL。另一个非常有用的R函数是apply()。我们可以通过它仅用一行代码同时将多列变量变成数值类型。apply()函数不仅可以用来改变数据类型,也可以执行其他数学计算。

分析和理解美式橄榄球比赛数据

1.首先,为了方便后续数据研究,我们将offense和defense两个数据框合并成combined

因为offense和defense数据框中存在相同的列名称,为了避免后面操作的混淆,我们需要为重名的列进行唯一命名。同时我们会剔出defense中和offense中重复的比赛数量列。

直方图一直是初步研究数据的最好工具之一。因为它可以通过显示每列数据的分布而分辨偏低、偏高和在正常范围内的数值。

首先,我们为每个球队平均每场进攻得分(offensive points per game)创建一个直方图

2.尝试通过条形图来理解combined数据集。

条形图和前面所创建的直方图经常容易被混淆。在这里,二者的区别在于,条形图可以刻画出每支球队在不同评价指标上的差异,而直方图却是用来显示出评价指标在不同数值段上的球队数量的分布

3.现在我们再看看每支球队在失守码数上的平均表现,命令如下:

4.最后我们通过散点图来观察两个变量之间的相关性

构建度量攻防能力的指标

我们按照下面的流程来构造攻防指数:

1.首先,我们计算球队的进攻传球能力分值。combined变量中最能能体现传球能力的是PassYds/G(average passing yards per game),即平均每场传球码数。PassYds/G的值越高,说明球队拥有更强的传球能力。

首先我们计算每个球队的PassYds/G和最大值之间的差值,然后除以最大值。1减去比值的用意是为了使分值的大小和传球能力的大小成正比,最后将分值归一到0和100之间。

2.为了计算球队的进攻冲击能力,我们可以对数据域RushYds(average rushing yards per game)采取相同的变换。

3.对每场进攻得分和进攻码数进行上面相同的变化,然后将四个变换之后的变量综合成用户的攻击能力指标。

模拟单场由程序决定胜负的比赛

模拟比赛的基本思路是比赛双方中自身进攻能力和对手防守能力之间差值较大的队伍将获得比赛的胜利

1.选择两支参赛的队伍,为了方便起见,我们称这两支球队分别为主队和客队。

2.整合前面所计算的球队的攻防能力指数

3.基于汇总的参赛双方数据,我们现在可以通过比较两者的攻防能力指标来决定理论上应该胜出的队伍。

4.上面我们计算了双方在传球能力上的差别,我们现在比较两支球队在冲球能力以及总能力上的差别

5.因为球队的总能力表现是基于传球、冲击和总体能力初始差值得到的,我们需要重写Net_Total列。然后,通过比较两支球队的Net_Total,给出虚拟球赛中最终能够获胜的球队

转载于:https://www.cnblogs.com/yifdu25/p/8443313.html

模拟美式橄榄球比赛数据(R)相关推荐

  1. kaggle比赛数据_表格数据二进制分类:来自5个Kaggle比赛的所有技巧和窍门

    kaggle比赛数据 This article was originally written by Shahul ES and posted on the Neptune blog. 本文最初由 Sh ...

  2. 足球比赛数据可视分析

    点击上方蓝字关注我们 足球比赛数据可视分析 曹安琪1,2, 陈泓宇2, 谢潇2, 巫英才1,2 1 之江实验室,浙江 杭州 310012 2 浙江大学计算机辅助设计与图形学国家重点实验室,浙江 杭州 ...

  3. 英雄联盟LPL比赛数据可视化详细教程,可视化的魅力,你值得拥有!!!

    LPL比赛数据可视化 完成这个项目,我感觉我已经被掏空了,我几乎用尽了我会的所有知识 html+css+javascript+jQuery+python+requests+numpy+mysql+py ...

  4. python学得好牢饭_英雄联盟LPL比赛数据可视化详细教程,可视化的魅力,你值得拥有!!!...

    LPL比赛数据可视化 完成这个项目,我感觉我已经被掏空了,我几乎用尽了我会的所有知识 html+css+javascript+jQuery+python+requests+numpy+mysql+py ...

  5. 使用PHP模拟post提交数据

    这也是个老生常谈的话题了,上午花了点时间把这个问题整理了一下. 一般来说用PHP来模拟post提交数据有三种方法,file_get_contents.curl和socket. 写了个公用函数,专门用来 ...

  6. LPL比赛数据可视化,完成这个项目,用尽了我的所有Python知识

    LPL比赛数据可视化 效果图 完成这个项目,我感觉我已经被掏空了,我几乎用尽了我会的所有知识 html+css+javascript+jQuery+python+requests+numpy+mysq ...

  7. Python爬取英雄联盟职业比赛数据

    英雄联盟全球总决赛的脚步近了,代表LPL出征S9的三支战队也已蓄势待发,经常看英雄联盟比赛的我也是非常期待 FPX.RNG.IG 的精彩表现.我想找找网上有没有公开的比赛数据,兴许还能分析一波,看看这 ...

  8. matlab模拟台球比赛,Matlab 台球模拟程序 动画演示

    发布时间: Oct 21, 2012 更新时间: Oct 21, 2012 总字数:1669 阅读时间:4m 作者: 谢先斌 Matlab 台球模拟程序 动画演示 代码 axis([-1.6,12.6 ...

  9. Java Fx 小程序模拟赛马比赛

    描述: 设计一个模拟赛马比赛的软件,动画显示赛马的过程. 功能要求: 1.每局的马匹数可以设置(例如8匹马) 2.设计界面,可以填入和保存每匹马的相关参数包括:力量(与加速度相关).耐力(与持久力相关 ...

  10. 爬取新浪微博新闻(selenium),包括模拟登陆,数据存储等(适合初学者)

    爬取新浪微博(模拟登陆,数据存储) 写在最开头 下载浏览器驱动 测试驱动是否匹配/font> 模拟登陆 分析待爬取页面信息 保存数据 程序github地址 写在最开头 该程序主要是为爬取新浪微博 ...

最新文章

  1. Kotlin实践(1)-生成本地程序
  2. 深入浅出在NIO技术中,如何理解直接缓冲区要比非直接缓冲区效率高?
  3. PHP方向+go+rpc+swoole,瞅瞅 PHP+Swoole 作为网络通信框架
  4. Xshell远程访问工具及epel-release包安装
  5. google浏览器调试
  6. 用javascript来完成显示和隐藏的案例
  7. python循环一段代码_Python循环语句代码详解:while、for、break
  8. C++并发编程 (1) 基本知识
  9. 【领英如何一键批量有效地加好友?】
  10. 聚是一团火散作满天星,前端Vue.js+elementUI结合后端FastAPI实现大文件分片上传
  11. keepalived配置虚拟IP
  12. 安卓动画系统 - 安卓R
  13. linux gnuplot 教程,图形绘制利器:Gnuplot
  14. POS机安全电路设计
  15. 校招总结(华为、远景、新美大、百度、腾讯、网易游戏)
  16. 安利一波TabNine
  17. 安装配置MP-SPDZ以及创建MP-SPDZ库的docker镜像
  18. 获取股票历史数据和当前数据的API
  19. java 设置环境变量生效_配置java环境变量后没有生效的解决办法
  20. python爬取春节祝福语,并生成心形词云

热门文章

  1. Cisco(PacketTracer) - 三层交换机
  2. Notification基本通知的两种写法
  3. 计算机专业和机械自动化哪个好,自动化和机械设计制造及其自动化有哪些区别?选哪个好呢?...
  4. 公有云管理的一般建议
  5. 源码看JAVA【十】Short
  6. 计算机在投资审计中应用方法,计算机辅助审计技术在投资审计中的应用研究(原稿)_0...
  7. 精力充沛才能走得更远更从容
  8. Character类的常用方法
  9. PCB 一分钟科普之你真的懂多层板吗?
  10. 任正非讲话稿400篇_伟大背后是苦难!任正非“思想之路”:400+讲话稿合集