Cricpy takes guard for the Twenty20s

There are two ways to write error-free programs; only the third one works.”” Alan J. Perlis

Programming today is a race between software engineers striving to build bigger and better idiot-proof programs, and the universe trying to produce bigger and better idiots. So far, the universe is winning. ” Rick Cook

My software never has bugs. It just develops random features.” Anon

If you make an ass out of yourself, there will always be someone to ride you.” Bruce Lee

Introduction

This is the 3rd and final post on cricpy, and is a continuation to my 2 earlier posts

1. Introducing cricpy:A python package to analyze performances of cricketers
2.Cricpy takes a swing at the ODIs

Cricpy, is the python avatar of my R package ‘cricketr’. To know more about my R package cricketr see Re-introducing cricketr! : An R package to analyze performances of cricketers

With this post  cricpy, like cricketr, now becomes omnipotent, and is now capable of handling Test, ODI and T20 matches.

Cricpy uses the statistics info available in ESPN Cricinfo Statsguru.

You should be able to install the package using pip install cricpy and use the many functions available in the package. Please mindful of the ESPN Cricinfo Terms of Use

Cricpy can now analyze performances of teams in Test, ODI and T20 cricket see Cricpy adds team analytics to its arsenal!!

This post is also hosted on Rpubs at Int

This post is also hosted on Rpubs at Cricpy takes guard for the Twenty 20s. You can also download the pdf version of this post at cricpy-TT.pdf

You can fork/clone the package at Github cricpy

Note: If you would like to do a similar analysis for a different set of batsman and bowlers, you can clone/download my skeleton cricpy-template from Github (which is the R Markdown file I have used for the analysis below). You will only need to make appropriate changes for the players you are interested in. The functions can be executed in RStudio or in a IPython notebook.

If you are passionate about cricket, and love analyzing cricket performances, then check out my racy book on cricket ‘Cricket analytics with cricketr and cricpy – Analytics harmony with R & Python’! This book discusses and shows how to use my R package ‘cricketr’ and my Python package ‘cricpy’ to analyze batsmen and bowlers in all formats of the game (Test, ODI and T20). The paperback is available on Amazon at $21.99 and  the kindle version at $9.99/Rs 449/-. A must read for any cricket lover! Check it out!!

Untitled

The cricpy package

The data for a particular player in Twenty20s can be obtained with the getPlayerDataTT() function. To do this you will need to go to T20 Batting and T20 Bowling and click the player you are interested in This will bring up a page which have the profile number for the player e.g. for Virat Kohli this would be http://www.espncricinfo.com/india/content/player/253802.html. Hence,this can be used to get the data for Virat Kohlias shown below

The cricpy package is a clone of my R package cricketr. The signature of all the python functions are identical with that of its clone ‘cricketr’, with only the necessary variations between Python and R. It may be useful to look at my post R vs Python: Different similarities and similar differences. In fact if you are familar with one of the languages you can look up the package in the other and you will notice the parallel constructs.

You can fork/clone the package at Github cricpy

Note: The charts are self-explanatory and I have not added much of my own interpretation to it. Do look at the plots closely and check out the performances for yourself.

1 Importing cricpy – Python

# Install the package
# Do a pip install cricpy
# Import cricpy
import cricpy.analytics as ca 

2. Invoking functions with Python package cricpy

import cricpy.analytics as ca 
ca.batsman4s("./kohli.csv","Virat Kohli")

3. Getting help from cricpy – Python

import cricpy.analytics as ca 
help(ca.getPlayerDataTT)
## Help on function getPlayerDataTT in module cricpy.analytics:
## 
## getPlayerDataTT(profile, opposition='', host='', dir='./data', file='player001.csv', type='batting', homeOrAway=[1, 2, 3], result=[1, 2, 3, 5], create=True)
##     Get the Twenty20 International player data from ESPN Cricinfo based on specific inputs and store in a file in a given directory~
##     
##     Description
##     
##     Get the Twenty20 player data given the profile of the batsman/bowler. The allowed inputs are home,away, neutralboth and won,lost,tied or no result of matches. The data is stored in a <player>.csv file in a directory specified. This function also returns a data frame of the player
##     
##     Usage
##     
##     getPlayerDataTT(profile, opposition="",host="",dir = "./data", file = "player001.csv", 
##     type = "batting", homeOrAway = c(1, 2, 3), result = c(1, 2, 3,5))
##     Arguments
##     
##     profile     
##     This is the profile number of the player to get data. This can be obtained from http://www.espncricinfo.com/ci/content/player/index.html. Type the name of the player and click search. This will display the details of the player. Make a note of the profile ID. For e.g For Virat Kohli this turns out to be 253802 http://www.espncricinfo.com/india/content/player/35263.html. Hence the profile for Sehwag is 35263
##     opposition  
##     The numerical value of the opposition country e.g.Australia,India, England etc. The values are Afghanistan:40,Australia:2,Bangladesh:25,England:1,Hong Kong:19,India:6,Ireland:29, New Zealand:5,Pakistan:7,Scotland:30,South Africa:3,Sri Lanka:8,United Arab Emirates:27, West Indies:4, Zimbabwe:9; Note: If no value is entered for opposition then all teams are considered
##     host        
##     The numerical value of the host country e.g.Australia,India, England etc. The values are Australia:2,Bangladesh:25,England:1,India:6,New Zealand:5, South Africa:3,Sri Lanka:8,United States of America:11,West Indies:4, Zimbabwe:9 Note: If no value is entered for host then all host countries are considered
##     dir 
##     Name of the directory to store the player data into. If not specified the data is stored in a default directory "./data". Default="./data"
##     file        
##     Name of the file to store the data into for e.g. kohli.csv. This can be used for subsequent functions. Default="player001.csv"
##     type        
##     type of data required. This can be "batting" or "bowling"
##     homeOrAway  
##     This is vector with either or all 1,2, 3. 1 is for home 2 is for away, 3 is for neutral venue
##     result      
##     This is a vector that can take values 1,2,3,5. 1 - won match 2- lost match 3-tied 5- no result
##     Details
##     
##     More details can be found in my short video tutorial in Youtube https://www.youtube.com/watch?v=q9uMPFVsXsI
##     
##     Value
##     
##     Returns the player's dataframe
##     
##     Note
##     
##     Maintainer: Tinniam V Ganesh <tvganesh.85@gmail.com>
##     
##     Author(s)
##     
##     Tinniam V Ganesh
##     
##     References
##     
##     http://www.espncricinfo.com/ci/content/stats/index.html
##     https://gigadom.wordpress.com/
##     
##     See Also
##     
##     bowlerWktRateTT getPlayerData
##     
##     Examples
##     
##     ## Not run: 
##     # Only away. Get data only for won and lost innings
##     kohli =getPlayerDataTT(253802,dir="../cricketr/data", file="kohli1.csv",
##     type="batting")
##     
##     # Get bowling data and store in file for future
##     ashwin = getPlayerDataTT(26421,dir="../cricketr/data",file="ashwin1.csv",
##     type="bowling")
##     
##     kohli =getPlayerDataTT(253802,opposition = 2,host=2,dir="../cricketr/data", 
##     file="kohli1.csv",type="batting")

The details below will introduce the different functions that are available in cricpy.

4. Get the Twenty20 player data for a player using the function getPlayerDataOD()

Important Note This needs to be done only once for a player. This function stores the player’s data in the specified CSV file (for e.g. kohli.csv as above) which can then be reused for all other functions). Once we have the data for the players many analyses can be done. This post will use the stored CSV file obtained with a prior getPlayerDataTT for all subsequent analyses

import cricpy.analytics as ca
#kohli=ca.getPlayerDataTT(253802,dir=".",file="kohli.csv",type="batting")
#guptill=ca.getPlayerDataTT(226492,dir=".",file="guptill.csv",type="batting")
#shahzad=ca.getPlayerDataTT(419873,dir=".",file="shahzad.csv",type="batting")
#mccullum=ca.getPlayerDataTT(37737,dir=".",file="mccullum.csv",type="batting")

Included below are some of the functions that can be used for ODI batsmen and bowlers. For this I have chosen, Virat Kohli, ‘the run machine’ who is on-track for breaking many of the Test, ODI and Twenty20 records

5 Virat Kohli’s performance – Basic Analyses

The 3 plots below provide the following for Virat Kohli in T20s

  1. Frequency percentage of runs in each run range over the whole career
  2. Mean Strike Rate for runs scored in the given range
  3. A histogram of runs frequency percentages in runs ranges
import cricpy.analytics as ca
import matplotlib.pyplot as plt
ca.batsmanRunsFreqPerf("./kohli.csv","Virat Kohli")

ca.batsmanMeanStrikeRate("./kohli.csv","Virat Kohli")

ca.batsmanRunsRanges("./kohli.csv","Virat Kohli")

6. More analyses

import cricpy.analytics as ca
ca.batsman4s("./kohli.csv","Virat Kohli")

ca.batsman6s("./kohli.csv","Virat Kohli")

ca.batsmanDismissals("./kohli.csv","Virat Kohli")

ca.batsmanScoringRateODTT("./kohli.csv","Virat Kohli")

7. 3D scatter plot and prediction plane

The plots below show the 3D scatter plot of Kohli’s Runs versus Balls Faced and Minutes at crease. A linear regression plane is then fitted between Runs and Balls Faced + Minutes at crease

import cricpy.analytics as ca
ca.battingPerf3d("./kohli.csv","Virat Kohli")

8. Average runs at different venues

The plot below gives the average runs scored by Kohli at different grounds. The plot also the number of innings at each ground as a label at x-axis.

import cricpy.analytics as ca
ca.batsmanAvgRunsGround("./kohli.csv","Virat Kohli")

9. Average runs against different opposing teams

This plot computes the average runs scored by Kohli against different countries.

import cricpy.analytics as ca
ca.batsmanAvgRunsOpposition("./kohli.csv","Virat Kohli")

10 . Highest Runs Likelihood

The plot below shows the Runs Likelihood for a batsman. For this the performance of Kohli is plotted as a 3D scatter plot with Runs versus Balls Faced + Minutes at crease. K-Means. The centroids of 3 clusters are computed and plotted. In this plot Kohli’s highest tendencies are computed and plotted using K-Means

import cricpy.analytics as ca
ca.batsmanRunsLikelihood("./kohli.csv","Virat Kohli")

11. A look at the Top 4 batsman – Kohli,  Guptill, Shahzad and McCullum

The following batsmen have been very prolific in Twenty20 cricket and will be used for the analyses

  1. Virat Kohli: Runs – 2167, Average:49.25 ,Strike rate-136.11
  2. MJ Guptill : Runs -2271, Average:34.4 ,Strike rate-132.88
  3. Mohammed Shahzad :Runs – 1936, Average:31.22 ,Strike rate-134.81
  4. BB McCullum : Runs – 2140, Average:35.66 ,Strike rate-136.21

The following plots take a closer at their performances. The box plots show the median the 1st and 3rd quartile of the runs

12. Box Histogram Plot

This plot shows a combined boxplot of the Runs ranges and a histogram of the Runs Frequency

import cricpy.analytics as ca
ca.batsmanPerfBoxHist("./kohli.csv","Virat Kohli")

ca.batsmanPerfBoxHist("./guptill.csv","M J Guptill")

ca.batsmanPerfBoxHist("./shahzad.csv","M Shahzad")

ca.batsmanPerfBoxHist("./mccullum.csv","BB McCullum")

13 Moving Average of runs in career

Take a look at the Moving Average across the career of the Top 4 Twenty20 batsmen.

import cricpy.analytics as ca
ca.batsmanMovingAverage("./kohli.csv","Virat Kohli")

ca.batsmanMovingAverage("./guptill.csv","M J Guptill")
#ca.batsmanMovingAverage("./shahzad.csv","M Shahzad") # Gives error. Check!

ca.batsmanMovingAverage("./mccullum.csv","BB McCullum")

14 Cumulative Average runs of batsman in career

This function provides the cumulative average runs of the batsman over the career.Kohli’s average tops around 45 runs around 43 innings, though there is a dip downwards

import cricpy.analytics as ca
ca.batsmanCumulativeAverageRuns("./kohli.csv","Virat Kohli")

ca.batsmanCumulativeAverageRuns("./guptill.csv","M J Guptill")

ca.batsmanCumulativeAverageRuns("./shahzad.csv","M Shahzad")

ca.batsmanCumulativeAverageRuns("./mccullum.csv","BB McCullum")

15 Cumulative Average strike rate of batsman in career

Kohli, Guptill and McCullum average a strike rate of 125+

import cricpy.analytics as ca
ca.batsmanCumulativeStrikeRate("./kohli.csv","Virat Kohli")

ca.batsmanCumulativeStrikeRate("./guptill.csv","M J Guptill")

ca.batsmanCumulativeStrikeRate("./shahzad.csv","M Shahzad")

ca.batsmanCumulativeStrikeRate("./mccullum.csv","BB McCullum")

16 Relative Batsman Cumulative Average Runs

The plot below compares the Relative cumulative average runs of the batsman. Kohli is way above all the other 3 batsmen. Behind Kohli is McCullum and then Guptill

import cricpy.analytics as ca
frames = ["./kohli.csv","./guptill.csv","./shahzad.csv","./mccullum.csv"]
names = ["Kohli","Guptill","Shahzad","McCullumn"]
ca.relativeBatsmanCumulativeAvgRuns(frames,names)

17. Relative Batsman Strike Rate

The plot below gives the relative Runs Frequency Percetages for each 10 run bucket. The plot below show that Kohli tops the overall strike rate followed by McCullum and then Guptill

import cricpy.analytics as ca
frames = ["./kohli.csv","./guptill.csv","./shahzad.csv","./mccullum.csv"]
names = ["Kohli","Guptill","Shahzad","McCullum"]
ca.relativeBatsmanCumulativeStrikeRate(frames,names)

18. 3D plot of Runs vs Balls Faced and Minutes at Crease

The plot is a scatter plot of Runs vs Balls faced and Minutes at Crease. A 3D prediction plane is fitted

import cricpy.analytics as ca
ca.battingPerf3d("./kohli.csv","Virat Kohli")

ca.battingPerf3d("./guptill.csv","M J Guptill")

ca.battingPerf3d("./shahzad.csv","M Shahzad")

ca.battingPerf3d("./mccullum.csv","BB McCullum")

19. 3D plot of Runs vs Balls Faced and Minutes at Crease

Guptill and McCullum have a large percentage of sixes in comparison to the 4s. Kohli has a relative lower number of 6s

import cricpy.analytics as ca
frames = ["./kohli.csv","./guptill.csv","./shahzad.csv","./mccullum.csv"]
names = ["Kohli","Guptill","Shahzad","McCullum"]
ca.batsman4s6s(frames,names)

20. Predicting Runs given Balls Faced and Minutes at Crease

A multi-variate regression plane is fitted between Runs and Balls faced +Minutes at crease.

import cricpy.analytics as ca
import numpy as np
import pandas as pd
BF = np.linspace( 10, 400,15)
Mins = np.linspace( 30,600,15)
newDF= pd.DataFrame({'BF':BF,'Mins':Mins})
kohli= ca.batsmanRunsPredict("./kohli.csv",newDF,"Kohli")
print(kohli)
##             BF        Mins        Runs
## 0    10.000000   30.000000   14.753153
## 1    37.857143   70.714286   55.963333
## 2    65.714286  111.428571   97.173513
## 3    93.571429  152.142857  138.383693
## 4   121.428571  192.857143  179.593873
## 5   149.285714  233.571429  220.804053
## 6   177.142857  274.285714  262.014233
## 7   205.000000  315.000000  303.224414
## 8   232.857143  355.714286  344.434594
## 9   260.714286  396.428571  385.644774
## 10  288.571429  437.142857  426.854954
## 11  316.428571  477.857143  468.065134
## 12  344.285714  518.571429  509.275314
## 13  372.142857  559.285714  550.485494
## 14  400.000000  600.000000  591.695674

21 Analysis of Top Bowlers

The following 4 bowlers have had an excellent career and will be used for the analysis

  1. Shakib Hasan:Wickets: 80, Average = 21.07, Economy Rate – 6.74
  2. Mohammed Nabi : Wickets: 67, Average = 24.25, Economy Rate – 7.13
  3. Rashid Khan: Wickets: 64, Average = 12.40, Economy Rate – 6.01
  4. Imran Tahir : Wickets:62, Average – 14.95, Economy Rate – 6.77

22. Get the bowler’s data

This plot below computes the percentage frequency of number of wickets taken for e.g 1 wicket x%, 2 wickets y% etc and plots them as a continuous line

import cricpy.analytics as ca
#shakib=ca.getPlayerDataTT(56143,dir=".",file="shakib.csv",type="bowling")
#nabi=ca.getPlayerDataOD(25913,dir=".",file="nabi.csv",type="bowling")
#rashid=ca.getPlayerDataOD(793463,dir=".",file="rashid.csv",type="bowling")
#tahir=ca.getPlayerDataOD(40618,dir=".",file="tahir.csv",type="bowling")

23. Wicket Frequency Plot

This plot below plots the frequency of wickets taken for each of the bowlers

import cricpy.analytics as ca
ca.bowlerWktsFreqPercent("./shakib.csv","Shakib Al Hasan")

ca.bowlerWktsFreqPercent("./nabi.csv","Mohammad Nabi")

ca.bowlerWktsFreqPercent("./rashid.csv","Rashid Khan")

ca.bowlerWktsFreqPercent("./tahir.csv","Imran Tahir")

24. Wickets Runs plot

The plot below create a box plot showing the 1st and 3rd quartile of runs conceded versus the number of wickets taken.

import cricpy.analytics as ca
ca.bowlerWktsRunsPlot("./shakib.csv","Shakib Al Hasan")

ca.bowlerWktsRunsPlot("./nabi.csv","Mohammad Nabi")

ca.bowlerWktsRunsPlot("./rashid.csv","Rashid Khan")

ca.bowlerWktsRunsPlot("./tahir.csv","Imran Tahir")

25 Average wickets at different venues

The plot gives the average wickets taken by Muralitharan at different venues.

import cricpy.analytics as ca
ca.bowlerAvgWktsGround("./shakib.csv","Shakib Al Hasan")

ca.bowlerAvgWktsGround("./nabi.csv","Mohammad Nabi")

ca.bowlerAvgWktsGround("./rashid.csv","Rashid Khan")

ca.bowlerAvgWktsGround("./tahir.csv","Imran Tahir")

26 Average wickets against different opposition

The plot gives the average wickets taken by Muralitharan against different countries. The x-axis also includes the number of innings against each team

import cricpy.analytics as ca
ca.bowlerAvgWktsOpposition("./shakib.csv","Shakib Al Hasan")

ca.bowlerAvgWktsOpposition("./nabi.csv","Mohammad Nabi")

ca.bowlerAvgWktsOpposition("./rashid.csv","Rashid Khan")

ca.bowlerAvgWktsOpposition("./tahir.csv","Imran Tahir")

27 Wickets taken moving average

From the plot below it can be see

import cricpy.analytics as ca
ca.bowlerMovingAverage("./shakib.csv","Shakib Al Hasan")

ca.bowlerMovingAverage("./nabi.csv","Mohammad Nabi")

ca.bowlerMovingAverage("./rashid.csv","Rashid Khan")

ca.bowlerMovingAverage("./tahir.csv","Imran Tahir")

28 Cumulative average wickets taken

The plots below give the cumulative average wickets taken by the bowlers. Rashid Khan has been the most effective with almost 2.28 wickets per match

import cricpy.analytics as ca
ca.bowlerCumulativeAvgWickets("./shakib.csv","Shakib Al Hasan")

ca.bowlerCumulativeAvgWickets("./nabi.csv","Mohammad Nabi")

ca.bowlerCumulativeAvgWickets("./rashid.csv","Rashid Khan")

ca.bowlerCumulativeAvgWickets("./tahir.csv","Imran Tahir")

29 Cumulative average economy rate

The plots below give the cumulative average economy rate of the bowlers. Rashid Khan has the nest economy rate followed by Mohammed Nabi

import cricpy.analytics as ca
ca.bowlerCumulativeAvgEconRate("./shakib.csv","Shakib Al Hasan")

ca.bowlerCumulativeAvgEconRate("./nabi.csv","Mohammad Nabi")

ca.bowlerCumulativeAvgEconRate("./rashid.csv","Rashid Khan")

ca.bowlerCumulativeAvgEconRate("./tahir.csv","Imran Tahir")

30 Relative cumulative average economy rate of bowlers

The Relative cumulative economy rate is given below. It can be seen that Rashid Khan has the best economy rate followed by Mohammed Nabi and then Imran Tahir

import cricpy.analytics as ca
frames = ["./shakib.csv","./nabi.csv","./rashid.csv","tahir.csv"]
names = ["Shakib Al Hasan","Mohammad Nabi","Rashid Khan", "Imran Tahir"]
ca.relativeBowlerCumulativeAvgEconRate(frames,names)

31 Relative Economy Rate against wickets taken

Rashid Khan has the best figures for wickets between 2-3.5 wickets. Mohammed Nabi pips Rashid Khan when takes a haul of 4 wickets.

import cricpy.analytics as ca
frames = ["./shakib.csv","./nabi.csv","./rashid.csv","tahir.csv"]
names = ["Shakib Al Hasan","Mohammad Nabi","Rashid Khan", "Imran Tahir"]
ca.relativeBowlingER(frames,names)

32 Relative cumulative average wickets of bowlers in career

Rashid has the best performance with cumulative average wickets. He is followed by Imran Tahir in the wicket haul, followed by Shakib Al Hasan

import cricpy.analytics as ca
frames = ["./shakib.csv","./nabi.csv","./rashid.csv","tahir.csv"]
names = ["Shakib Al Hasan","Mohammad Nabi","Rashid Khan", "Imran Tahir"]
ca.relativeBowlerCumulativeAvgWickets(frames,names)

33. Key Findings

The plots above capture some of the capabilities and features of my cricpy package. Feel free to install the package and try it out. Please do keep in mind ESPN Cricinfo’s Terms of Use.

Here are the main findings from the analysis above

Analysis of Top 4 batsman

The analysis of the Top 4 test batsman Kohli, Guptill, Shahzad and McCullum
1.Kohli has the best overall cumulative average runs and towers over everybody else
2. Kohli, Guptill and McCullum has a very good strike rate of around 125+
3. Guptill and McCullum have a larger percentage of sixes as compared to Kohli
4. Rashid Khan has the best cumulative average wickets, followed by Imran Tahir and then Shakib Al Hasan
5. Rashid Khan is the most economical bowler, followed by Mohammed Nabi

You can fork/clone the package at Github cricpy

Conclusion

Cricpy now has almost all the functions and functionalities of my R package cricketr. There are still a few more features that need to be added to cricpy. I intend to do this as and when I find time.

Go ahead, take cricpy for a spin! Hope you enjoy the ride!

Watch this space!!!

Important note: Do check out my other posts using cricpy at cricpy-posts

You may also like
1. A method for optimal bandwidth usage by auctioning available bandwidth using the OpenFlow protocol
2. Introducing QCSimulator: A 5-qubit quantum computing simulator in R
3. Dabbling with Wiener filter using OpenCV
4. Deep Learning from first principles in Python, R and Octave – Part 5
5. Latency, throughput implications for the Cloud
6. Bend it like Bluemix, MongoDB using Auto-scale – Part 1!
7. Sea shells on the seashore
8. Practical Machine Learning with R and Python – Part 4

To see all posts click Index of Posts

Inswinger: yorkr swings into International T20s

In this post I introduce ‘Inswinger’ an interactive Shiny app to analyze International T20 players, matches and teams. This app was a natural consequence to my earlier Shiny app ‘GooglyPlus’. Most of the structure for this app remained the same, I only had to work with a different dataset, so to speak.

The Googly Shiny app is based on my R package ‘yorkr’ which is now available in CRAN. The R package and hence this Shiny app is based on data from Cricsheet. Inswinger is based on the latest data dump from Cricsheet (Dec 2016) and includes all International T20 till then. There are a lot of new Internationation teams like Oman, Hong Kong, UAE, etc. In total there are 22 different International T20 teams in my Inswinger app.

The countries are a) Afghanistan b) Australia c) Bangladesh d) Bermuda e) Canada f) England g) Hong Kong h) India i) Ireland j) Kenya k) Nepal l) Netherlands m) New Zealand n) Oman o) Pakistan p) Papua New Guinea q) Scotland r) South Africa s) Sri Lanka t) United Arab Emirates u) West Indies v) Zimbabwe

If you are passionate about cricket, and love analyzing cricket performances, then check out my 2 racy books on cricket! In my books, I perform detailed yet compact analysis of performances of both batsmen, bowlers besides evaluating team & match performances in Tests , ODIs, T20s & IPL. You can buy my books on cricket from Amazon at $12.99 for the paperback and $4.99/$6.99 respectively for the kindle versions. The books can be accessed at Cricket analytics with cricketr  and Beaten by sheer pace-Cricket analytics with yorkr  A must read for any cricket lover! Check it out!!

1

 

My R package ‘yorkr’,  on which both these Shiny apps are based, has the ability to output either a dataframe or plot, depending on a parameter plot=TRUE or FALSE. Hence in the Inswinger Shiny app results can be displayed both as table or a plot depending on the choice of function.

Inswinger can do detailed analyses of a) Individual T20 batsman b) Individual T20 bowler c) Any T20 match d) Head to head confrontation between 2 T20 teams e) All matches of a T20 team against all other teams.

The Shiny app can be accessed at Inswinger

The code for Inswinger is available at Github. Feel free to clone/download/fork  the code from Inswinger

Based on the 5 detailed analysis domains there are 5 tabs
A) T20 Batsman: This tab can be used to perform analysis of all T20 batsman. If a batsman has played in more than 1 team, then the overall performance is considered. There are 10 functions for the T20 Batsman. They are shown below
– Batsman Runs vs. Deliveries
– Batsman’s Fours & Sixes
– Dismissals of batsman
– Batsman’s Runs vs Strike Rate
– Batsman’s Moving Average
– Batsman’s Cumulative Average Run
– Batsman’s Cumulative Strike Rate
– Batsman’s Runs against Opposition
– Batsman’s Runs at Venue
– Predict Runs of batsman

B) T20 Bowler: This tab can be used to analyze individual T20 bowlers. The functions handle T20 bowlers who have played in more than 1 T20 team.
– Mean Economy Rate of bowler
– Mean runs conceded by bowler
– Bowler’s Moving Average
– Bowler’s Cumulative Avg. Wickets
– Bowler’s Cumulative Avg. Economy Rate
– Bowler’s Wicket Plot
– Bowler’s Wickets against opposition
– Bowler’s Wickets at Venues
– Bowler’s wickets prediction

C) T20 match: This tab can be used for analyzing individual T20 matches. The available functions are
– Match Batting Scorecard – Table
– Batting Partnerships – Plot, Table
– Batsmen vs Bowlers – Plot, Table
– Match Bowling Scorecard   – Table
– Bowling Wicket Kind – Plot, Table
– Bowling Wicket Runs – Plot, Table
– Bowling Wicket Match – Plot, Table
– Bowler vs Batsmen – Plot, Table
– Match Worm Graph – Plot

D) Head to head: This tab can be used for analyzing head-to-head confrontations, between any 2 T20 teams for e.g. all matches between India vs Australia or West Indies vs Sri Lanka . The available functions are
-Team Batsmen Batting Partnerships All Matches – Plot, Table {Summary and Detailed}
-Team Batting Scorecard All Matches – Table
-Team Batsmen vs Bowlers all Matches – Plot, Table
-Team Wickets Opposition All Matches – Plot, Table
-Team Bowling Scorecard All Matches – Table
-Team Bowler vs Batsmen All Matches – Plot, Table
-Team Bowlers Wicket Kind All Matches – Plot, Table
-Team Bowler Wicket Runs All Matches – Plot, Table
– Win Loss All Matches – Plot

E) T20 team’s overall performance: this tab can be used analyze the overall performance of any T20 team. For this analysis all matches played by this team is considered. The available functions are
-Team Batsmen Partnerships Overall – Plot, Table {Summary and Detailed)}
-Team Batting Scorecard Overall –Table
-Team Batsmen vs Bowlers Overall – Plot, Table
-Team Bowler vs Batsmen Overall – Plot, Table
-Team Bowling Scorecard Overall – Table
-Team Bowler Wicket Kind Overall – Plot, Table

Below I include a random set of charts that are generated in each of the 5 tabs
A. IPL Batsman
a. Shakib-al-Hassan (Bangladesh) :  Runs vs Deliveries
untitled

b. Virat Kohli (India) – Cumulative Average
untitled

c.  AB Devilliers (South Africa) – Runs at venues
untitled

d. Glenn Maxwell (Australia)  – Predict runs vs deliveries faces
untitled

B. IPL Bowler
a. TG Southee (New Zealand) – Mean Economy Rate vs overs
untitled

b) DJ Bravo – Moving Average of wickets
untitled

c) AC Evans (Scotland) – Bowler Wickets Against Opposition
untitled

C.T20 Match
a. Match Score (Afghanistan vs Canada, 2012-03-18)
untitled

b)  Match batting partnerships (Plot) Hong Kong vs Oman (2015-11-21), Hong Kong
Hong Kong Partnerships
untitled

c) Match batting partnerships (Table) – Ireland vs Scotland(2012-03-18, Ireland)
Batting partnership can also be displayed as a table
untitled

d) Batsmen vs Bowlers (Plot) – India vs England (2012-12-22)
untitled

e) Match Worm Chart – Sri Lanka vs Pakistan (2015-08-01)
untitled

D.Head to head
a) Team Batsmen Partnership (Plot) – India vs Australia (all matches)
Virat Kohli has the highest total runs in partnerships against Australia
untitled

b)  Team Batsmen Partnership (Summary – Table) – Kenya vs Bangladesh
untitled

c) Team Bowling Scorecard (Table only) India vs South Africa all Matches
untitled

d) Wins- Losses New Zealand vs West Indies all Matches
untitled

C) Overall performances
a) Batting Scorecard All Matches  (Table only) – England’s overall batting performance
Eoin Morgan, Kevin Pieterson  & SJ Taylor have the best performance
untitled

b) Batsman vs Bowlers all Matches (Plot)
India’s best performing batsman (Rank=1) is Virat Kohli
untitled

c)  Batsman vs Bowlers all Matches (Table)
The plot above for Virat Kohli can also be displayed as a table. Kohli has score most runs DJ Bravo, SR Watson & Shahid Afridi
untitled

The Inswinger Shiny app can be accessed at Inswinger. Give it a swing!

The code for Inswinger is available at Github. Feel free to clone/download/fork  the code from Inswinger

Also see my other Shiny apps
1.GooglyPlus
2.What would Shakespeare say?
3.Sixer
4.Revisiting crimes against women in India

You may also like
1. Neural Networks: The mechanics of backpropagation
A primer on Qubits, Quantum gates and Quantum Operation
2. Re-working the Lucy Richardson algorithm in OpenCV
3.Design Principles of Scalable, Distributed Systems
4.Spicing up a IBM Bluemix cloud app with MongoDB and NodeExpress
5.Programming languages in layman’s language
7.Re-introducing cricketr! : An R package to analyze performances of cricketers

To see all posts take at a look at Index of Posts

yorkr is generic!

The features and functionality in my yorkr package is now complete. My R package yorkr, is totally generic, which means that the R package  can be used for all ODI, T20 matches. Hence yorkr can be used for professional or amateur ODI and T20 matches. The R package can be used for both men and women ODI, T20 international or domestic matches. The main requirement is, that the match data  be created as a Yaml file in the format Cricsheet (Required yaml format for the match data).

If you are passionate about cricket, and love analyzing cricket performances, then check out my 2 racy books on cricket! In my books, I perform detailed yet compact analysis of performances of both batsmen, bowlers besides evaluating team & match performances in Tests , ODIs, T20s & IPL. You can buy my books on cricket from Amazon at $12.99 for the paperback and $4.99/$6.99 respectively for the kindle versions. The books can be accessed at Cricket analytics with cricketr  and Beaten by sheer pace-Cricket analytics with yorkr  A must read for any cricket lover! Check it out!!

1

$4.99/Rs 320 and $6.99/Rs448 respectively

 

I have successfully used my R functions for the Indian Premier League (IPL) matches with changes only to the convertAllYamlFiles2RDataFramesXX (please see posts below)

The convertAllYamlFiles2RDataframes &convertAllYamlFiles2RDataFramesT20 will have to be customized for the names of the teams playing in the domestic professional or amateur matches. All other classes of functions namely Class1, Class2, Class 3 and Class 4 as discussed in my post Introducing cricket package yorkr-Part 1: Beaten by sheer pace can be used as is without any changes.

There are numerous professional & amateur T20 matches that are played around the world. Here are a list of domestic T20 tournaments that are played around the world (from Wikipedia). The yorkr package can be used for any of these matches once the match data is saved as yaml as mentioned above.

So do go ahead and have fun, analyzing cricket performances with yorkr!

Please take a look at my posts on how to use yorkr for ODI, Twenty20 matches.

  1. Introducing cricket package yorkr:Part 1- Beaten by sheer pace!
    2. Introducing cricket package yorkr:Part 2- Trapped leg before wicket!
    3.  Introducing cricket package yorkr:Part 3- foxed by flight!
    4. Introducing cricket package yorkr:Part 4-In the block hole!
    5. yorkr pads up for the Twenty20s: Part 1- Analyzing team”s match performance
    6. yorkr pads up for the Twenty20s: Part 2-Head to head confrontation between teams
    7. yorkr pads up for the Twenty20s:Part 3:Overall team performance against all oppositions!
    8. yorkr pads up for Twenty20s:Part 4- Individual batting and bowling performances!
    9. yorkr crashes the IPL party ! – Part 1
    10. yorkr crashes the IPL party! – Part 2
    11. yorkr crashes the IPL party! – Part 3
    12. yorkr crashes the IPL party! – Part 4
    13. yorkr ranks IPL batsmen and bowlers
    14. yorkr ranks T20 batsmen and bowlers
    15. yorkr ranks ODI batsmen and bowlers

yorkr ranks T20 batsmen and bowlers

Here is another short post which ranks T20 batsmen and bowlers. These are based on match data from Cricsheet. The ranking is done on

  1. average runs and average strike rate for batsmen and
  2. average wickets and average economy rate for bowlers.

If you are passionate about cricket, and love analyzing cricket performances, then check out my 2 racy books on cricket! In my books, I perform detailed yet compact analysis of performances of both batsmen, bowlers besides evaluating team & match performances in Tests , ODIs, T20s & IPL. You can buy my books on cricket from Amazon at $12.99 for the paperback and $4.99/$6.99 respectively for the kindle versions. The books can be accessed at Cricket analytics with cricketr  and Beaten by sheer pace-Cricket analytics with yorkr  A must read for any cricket lover! Check it out!!

1

.99/Rs 320 and $6.99/Rs448 respectively

 

This post has also been published in RPubs RankT20Players. You can download this as a pdf file at RankT20Players.pdf.

Checkout my interactive Shiny apps GooglyPlus (plots & tables) and Googly (only plots) which can be used to analyze IPL players, teams and matches.

You can take a look at the code at rankT20Players (available in yorkr_0.0.5)

rm(list=ls())
library(yorkr)
library(dplyr)
source("rankT20Batsmen.R")
source("rankT20Bowlers.R")

Rank T20 batsmen

Virat Kohli (Ind), Chris Gayle (WI) and Kevin Pietersen (Eng) top the T20 rankings. Virat Kohli stands tall among the batsmen with a average of 39.1935, followed by Chris Gayle who has an average of 32.69 and finally Kevin Pietersen.

Note: For T20 a cutoff of at least 30 matches played was chosen.

T20BatsmanRank <- rankT20Batsmen()
as.data.frame(T20BatsmanRank[1:30,])
##             batsman matches meanRuns   meanSR
## 1           V Kohli      31 39.19355 128.8371
## 2          CH Gayle      43 32.69767 119.6467
## 3      KP Pietersen      37 32.43243 138.6732
## 4     KS Williamson      31 32.25806 130.1255
## 5  Mohammad Shahzad      33 31.66667 115.4582
## 6       BB McCullum      69 30.98551 126.0610
## 7        MJ Guptill      54 30.83333 120.0669
## 8          AD Hales      37 30.75676 115.3511
## 9       H Masakadza      38 29.26316 109.6182
## 10         GC Smith      32 27.59375 114.1831
## 11        DA Warner      56 27.53571 123.2209
## 12        JP Duminy      58 26.84483 117.3952
## 13 DPMD Jayawardene      51 26.47059 112.4257
## 14        SR Watson      50 26.30000 118.9464
## 15    KC Sangakkara      52 26.23077 112.4665
## 16       TM Dilshan      66 26.18182 102.5683
## 17         SK Raina      43 25.90698 124.3044
## 18        RG Sharma      41 25.68293 123.3983
## 19        G Gambhir      36 25.66667 117.5764
## 20     Yuvraj Singh      41 25.12195 119.5846
## 21    Misbah-ul-Haq      32 25.09375 106.6762
## 22       EJG Morgan      52 24.71154 121.1462
## 23       MN Samuels      40 24.35000 105.8547
## 24       MEK Hussey      30 24.03333 129.1250
## 25    Ahmed Shehzad      41 23.82927 100.8805
## 26  Shakib Al Hasan      40 23.35000 109.3798
## 27          HM Amla      30 23.33333 111.2513
## 28         CL White      45 22.73333       NA
## 29      LMP Simmons      33 22.54545       NA
## 30       Umar Akmal      69 22.20290 108.3590

Rank T20 bowlers

The top 3 T20 bowlers are BAW Mendis (SL) Umar Gul (Pak) and Steyn(SA). R Ashwin is 13th. As with batsmen, a minimum of 30 matches played was taken into consideration.

T20BowlersRank <- rankT20Bowlers()
as.data.frame(T20BowlersRank[1:30,])
##             bowler matches meanWickets   meanER
## 1       BAW Mendis      36   1.6944444 6.581111
## 2         Umar Gul      57   1.5964912 7.306842
## 3         DW Steyn      38   1.5526316 6.407632
## 4      Saeed Ajmal      63   1.4920635 6.316190
## 5       SL Malinga      59   1.4576271 7.163898
## 6       TG Southee      37   1.4054054 8.840000
## 7       MG Johnson      30   1.4000000 7.080667
## 8         GP Swann      38   1.3947368 6.576842
## 9      JW Dernbach      33   1.3636364 8.550303
## 10        M Morkel      39   1.3333333 7.384872
## 11 Shakib Al Hasan      37   1.2972973 6.648649
## 12       SP Narine      32   1.2500000 5.757812
## 13        R Ashwin      33   1.2424242 7.247273
## 14 KMDN Kulasekara      42   1.2380952 6.938095
## 15       SCJ Broad      55   1.2363636 7.832182
## 16      WD Parnell      34   1.2058824 8.227941
## 17        KD Mills      41   1.1951220 8.077317
## 18      DL Vettori      34   1.1470588 5.708235
## 19   Shahid Afridi      85   1.1294118 6.748000
## 20       SR Watson      44   1.1136364 8.015227
## 21   Sohail Tanvir      48   1.1041667 7.354167
## 22   Sohail Tanvir      48   1.1041667 7.354167
## 23     NL McCullum      56   1.0535714 7.246964
## 24     NLTC Perera      34   1.0294118 8.916471
## 25         J Botha      39   1.0256410 6.647436
## 26        DJ Bravo      45   1.0222222 8.630000
## 27   Mohammad Nabi      32   0.9687500 7.208437
## 28       DJG Sammy      55   0.8909091 7.899818
## 29 Mohammad Hafeez      56   0.8392857 6.996964
## 30      AD Mathews      44   0.7954545 6.827727

Conclusion

Conclusion

As expected Virat Kohli stands head and shoulders above the rest. Hamid Hasan and Mohammed Shami figuring the top T20 bowlers was a bit of a surprise to me.

Important note: Do check out my other posts using yorkr at yorkr-posts

Watch this space!

  1. Introducing cricket package yorkr-Part1:Beaten by sheer pace!.
  2. yorkr pads up for the Twenty20s: Part 1- Analyzing team“s match performance.
  3. yorkr crashes the IPL party !Part 1
  4. Introducing cricketr! : An R package to analyze performances of cricketers
  5. Cricket analytics with cricketr in paperback and Kindle versions

yorkr crashes the IPL party! – Part 4

Introduction

I’ve missed more than 9000 shots in my career. I’ve lost almost 300 games. 26 times, I’ve been trusted to take the game winning shot and missed. I’ve failed over and over and over again in my life. And that is why I succeed.

                      Michael Jordan

Success is where preparation and opportunity meet.

                      Bobby Unser

It is not whether you get knocked down. It is whether you get up.

                      Vince Lombardi

Make sure your worst enemy doesn’t live between your own two ears.

                      Laird Hamilton

This post should be the last post for “yorkr crashes the IPL party!”. In fact it is final post for the whole ‘yorkr’ series. I have now covered the use of yorkr for ODIs, Twenty20s and IPL T20 formats. I will not be including functionality in yorkr to handle Test cricket from Cricsheet. I would recommend that you use my R package cricketr. Please see my post Introducing cricketr! : An R package to analyze performances of cricketers

In this last post on IPL T20 I look at the top individual batting and bowling performances in the IPL Twenty20s. Also please take a look at my 3 earlier post on yorkr’s handling of IPL Twenty20 matches

  1. yorkr crashes the IPL party ! – Part 1
  2. yorkr crashes the IPL party ! – Part 2
  3. yorkr crashes the IPL party ! – Part 3

If you are passionate about cricket, and love analyzing cricket performances, then check out my 2 racy books on cricket! In my books, I perform detailed yet compact analysis of performances of both batsmen, bowlers besides evaluating team & match performances in Tests , ODIs, T20s & IPL. You can buy my books on cricket from Amazon at $12.99 for the paperback and $4.99/$6.99 respectively for the kindle versions. The books can be accessed at Cricket analytics with cricketr  and Beaten by sheer pace-Cricket analytics with yorkr  A must read for any cricket lover! Check it out!!

1

 

This post has also been published at RPubs IPLT20-Part4 and can also be downloaded as a PDF document from IPLT20-Part4.pdf.

You can clone/fork the code for the package yorkr from Github at yorkr-package

Checkout my interactive Shiny apps GooglyPlus (plots & tables) and Googly (only plots) which can be used to analyze IPL players, teams and matches.

Important note 1: Do check out all the posts on the python avatar of yorkr, namely ‘yorkpy’ in my post ‘Pitching yorkpy … short of good length to IPL – Part 1

The list of Class 4 functions are shown below.The Twenty20 features will be available from yorkr_0.0.4

Batsman functions

  1. batsmanRunsVsDeliveries
  2. batsmanFoursSixes
  3. batsmanDismissals
  4. batsmanRunsVsStrikeRate
  5. batsmanMovingAverage
  6. batsmanCumulativeAverageRuns
  7. batsmanCumulativeStrikeRate
  8. batsmanRunsAgainstOpposition
  9. batsmanRunsVenue
  10. batsmanRunsPredict

Bowler functions

  1. bowlerMeanEconomyRate
  2. bowlerMeanRunsConceded
  3. bowlerMovingAverage
  4. bowlerCumulativeAvgWickets
  5. bowlerCumulativeAvgEconRate
  6. bowlerWicketPlot
  7. bowlerWicketsAgainstOpposition
  8. bowlerWicketsVenue
  9. bowlerWktsPredict
library(yorkr)
library(gridExtra)
library(rpart.plot)
library(dplyr)
library(ggplot2)
rm(list=ls())

A. Batsman functions

1. Get IPL Team Batting details

The function below gets the overall IPL team batting details based on the RData file available in IPL T20 matches. This is currently also available in Github at [IPL-T20-matches] (https://github.com/tvganesh/yorkrData/tree/master/IPL/IPL-T20-matches). The batting details of the IPL team in each match is created and a huge data frame is created by rbinding the individual dataframes. This can be saved as a RData file

setwd("C:/software/cricket-package/york-test/yorkrData/IPL/IPL-T20-matches")
csk_details <- getTeamBattingDetails("Chennai Super Kings",dir=".", save=TRUE)
dd_details <- getTeamBattingDetails("Delhi Daredevils",dir=".",save=TRUE)
kkr_details <- getTeamBattingDetails("Kolkata Knight Riders",dir=".",save=TRUE)
mi_details <- getTeamBattingDetails("Mumbai Indians",dir=".",save=TRUE)
rcb_details <- getTeamBattingDetails("Royal Challengers Bangalore",dir=".",save=TRUE)

2. Get IPL batsman details

This function is used to get the individual IPL T20 batting record for a the specified batsman of the team as in the functions below. For analyzing the batting performances I have chosen the top IPL T20 batsmen from the teams. This was based to a large extent on batting scorecard functions from yorkr crashes the IPL party!:Part 3 The top IPL batsmen chosen are the ones below

  1. Suresh Raina (CSK)
  2. MS Dhoni (CSK)
  3. Virendar Sehwag (DD)
  4. Rohit Sharma (MI)
  5. Gautham Gambhir (KKR)
  6. Virat Kohli (RCB)
setwd("C:/software/cricket-package/cricsheet/cleanup/IPL/part4")
raina <- getBatsmanDetails(team="Chennai Super Kings",name="SK Raina",dir=".")
## [1] "./Chennai Super Kings-BattingDetails.RData"
dhoni <- getBatsmanDetails(team="Chennai Super Kings",name="MS Dhoni")
## [1] "./Chennai Super Kings-BattingDetails.RData"
sehwag <-  getBatsmanDetails(team="Delhi Daredevils",name="V Sehwag",dir=".")
## [1] "./Delhi Daredevils-BattingDetails.RData"
gambhir <-  getBatsmanDetails(team="Kolkata Knight Riders",name="G Gambhir",dir=".")
## [1] "./Kolkata Knight Riders-BattingDetails.RData"
rsharma <-  getBatsmanDetails(team="Mumbai Indians",name="RG Sharma",dir=".")
## [1] "./Mumbai Indians-BattingDetails.RData"
kohli <-  getBatsmanDetails(team="Royal Challengers Bangalore",name="V Kohli",dir=".")
## [1] "./Royal Challengers Bangalore-BattingDetails.RData"

3. Runs versus deliveries (in IPL matches)

Sehwag has a superb strike rate. It can be seen that Sehwag averages around 80 runs for around 40 deliveries followed by Rohit Sharma. Raina and Dhoni average around 60 runs

p1 <-batsmanRunsVsDeliveries(raina, "SK Raina")
p2 <-batsmanRunsVsDeliveries(dhoni,"MS Dhoni")
p3 <-batsmanRunsVsDeliveries(sehwag,"V Sehwag")
p4 <-batsmanRunsVsDeliveries(gambhir,"G Gambhir")
p5 <-batsmanRunsVsDeliveries(rsharma,"RG Sharma")
p6 <-batsmanRunsVsDeliveries(kohli,"V Kohli")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

runsVsDeliveries-1

4. Batsman Total runs, Fours and Sixes (in IPL matches)

Dhoni leads in the runs made from sixes in comparison to the others

raina46 <- select(raina,batsman,ballsPlayed,fours,sixes,runs)
p1 <-batsmanFoursSixes(raina46, "SK Raina")
dhoni46 <- select(dhoni,batsman,ballsPlayed,fours,sixes,runs)
p2 <-batsmanFoursSixes(dhoni46,"MS Dhoni")
sehwag46 <- select(sehwag,batsman,ballsPlayed,fours,sixes,runs)
p3 <-batsmanFoursSixes(sehwag46,"V Sehwag")
gambhir46 <- select(gambhir,batsman,ballsPlayed,fours,sixes,runs)
p4 <-batsmanFoursSixes(gambhir46,"G Gambhir")
rsharma46 <- select(rsharma,batsman,ballsPlayed,fours,sixes,runs)
p5 <-batsmanFoursSixes(rsharma46,"RG Sharma")
kohli46 <- select(kohli,batsman,ballsPlayed,fours,sixes,runs)
p6 <-batsmanFoursSixes(kohli46,"V Kohli")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

foursSixes-1

5. Batsman dismissals (in IPL matches)

The type of dismissal for each batsman is shown below

p1 <-batsmanDismissals(raina, "SK Raina")
p2 <-batsmanDismissals(dhoni,"MS Dhoni")
p3 <-batsmanDismissals(sehwag,"V Sehwag")
p4 <-batsmanDismissals(gambhir,"G Gambhir")
p5 <-batsmanDismissals(rsharma,"RG Sharma")
p6 <-batsmanDismissals(kohli,"V Kohli")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

dismissal-1

6. Runs versus Strike Rate (in IPL matches)

Raina, Dhoni and Kohli have an increasing strike rate with more runs scored

p1 <-batsmanRunsVsStrikeRate(raina, "SK Raina")
p2 <-batsmanRunsVsStrikeRate(dhoni,"MS Dhoni")
p3 <-batsmanRunsVsStrikeRate(sehwag,"V Sehwag")
p4 <-batsmanRunsVsStrikeRate(gambhir,"G Gambhir")
p5 <-batsmanRunsVsStrikeRate(rsharma,"RG Sharma")
p6 <-batsmanRunsVsStrikeRate(kohli,"V Kohli")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

runsSR-1

7. Batsman moving average (in IPL matches)

Rohit Sharma seems to maintain an average of almost 30 runs, while Dhoni and Kohli average around 25.

p1 <-batsmanMovingAverage(raina, "SK Raina")
p2 <-batsmanMovingAverage(dhoni,"MS Dhoni")
p3 <-batsmanMovingAverage(sehwag,"V Sehwag")
p4 <-batsmanMovingAverage(gambhir,"G Gambhir")
p5 <-batsmanMovingAverage(rsharma,"RG Sharma")
p6 <-batsmanMovingAverage(kohli,"V Kohli")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

ma-1

8. Batsman cumulative average (in IPL matches)

The cumulative runs average of Raina, Gambhir, Kohli and Rohit Sharma are around 28-30 runs.Dhoni drops to 25

p1 <-batsmanCumulativeAverageRuns(raina, "SK Raina")
p2 <-batsmanCumulativeAverageRuns(dhoni,"MS Dhoni")
p3 <-batsmanCumulativeAverageRuns(sehwag,"V Sehwag")
p4 <-batsmanCumulativeAverageRuns(gambhir,"G Gambhir")
p5 <-batsmanCumulativeAverageRuns(rsharma,"RG Sharma")
p6 <-batsmanCumulativeAverageRuns(kohli,"V Kohli")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

cAvg-1

9. Cumulative Average Strike Rate (in IPL matches)

As seen above Sehwag has a phenomenal cumulative strike rate of around 150, followed by Dhoni around 130, then we Raina and finally Kohli.

p1 <-batsmanCumulativeStrikeRate(raina, "SK Raina")
p2 <-batsmanCumulativeStrikeRate(dhoni,"MS Dhoni")
p3 <-batsmanCumulativeStrikeRate(sehwag,"V Sehwag")
p4 <-batsmanCumulativeStrikeRate(gambhir,"G Gambhir")
p5 <-batsmanCumulativeStrikeRate(rsharma,"RG Sharma")
p6 <-batsmanCumulativeStrikeRate(kohli,"V Kohli")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

cSR-1

10. Batsman runs against opposition (in IPL matches)

The following charts show the performance of te batsmen against opposing IPL teams


batsmanRunsAgainstOpposition(raina, "SK Raina")

runsOppn1-1

batsmanRunsAgainstOpposition(dhoni,"MS Dhoni")

runsOppn2-1

batsmanRunsAgainstOpposition(sehwag,"V Sehwag")

runsOppn3-1

batsmanRunsAgainstOpposition(gambhir,"G Gambhir")

runsOppn4-1

batsmanRunsAgainstOpposition(rsharma,"RG Sharma")

runsOppn5-1

batsmanRunsAgainstOpposition(kohli,"V Kohli")

runsOppn6-1

11. Runs at different venues (in IPL matches)

The plots below give the performances of the batsmen at different grounds.

batsmanRunsVenue(raina, "SK Raina")

runsVenue1-1

batsmanRunsVenue(dhoni,"MS Dhoni")

runsVenue2-1

batsmanRunsVenue(sehwag,"V Sehwag")

runsVenue3-1

batsmanRunsVenue(gambhir,"G Gambhir")

runsVenue4-1

batsmanRunsVenue(rsharma,"RG Sharma")

runsVenue5-1

batsmanRunsVenue(kohli,"V Kohli")

runsVenue6-1

12. Predict number of runs to deliveries (in IPL matches)

The plots below use rpart classification tree to predict the number of deliveries required to score the runs in the leaf node.

par(mfrow=c(1,3))
par(mar=c(4,4,2,2))
batsmanRunsPredict(raina, "SK Raina")
batsmanRunsPredict(dhoni,"MS Dhoni")
batsmanRunsPredict(sehwag,"V Sehwag")

runsPredict1,runsVenue1-1

par(mfrow=c(1,3))
par(mar=c(4,4,2,2))
batsmanRunsPredict(gambhir,"G Gambhir")
batsmanRunsPredict(rsharma,"RG Sharma")
batsmanRunsPredict(kohli,"V Kohli")

runsPredict2,runsVenue1-1

B. Bowler functions

13. Get bowling details in IPL matches

The function below gets the overall team IPL T20 bowling details based on the RData file available in IPL T20 matches. This is currently also available in Github at [yorkrData] (https://github.com/tvganesh/yorkrData/tree/master/IPL/IPL-T20-matches). The IPL T20 bowling details of the IPL team in each match is created, and a huge data frame is created by rbinding the individual dataframes. This can be saved as a RData file

setwd("C:/software/cricket-package/york-test/yorkrData/IPL/IPL-T20-matches")
kkr_bowling <- getTeamBowlingDetails("Kolkata Knight Riders",dir=".",save=TRUE)
csk_bowling <- getTeamBowlingDetails("Chennai Super Kings",dir=".",save=TRUE)
kxip_bowling <- getTeamBowlingDetails("Kings XI Punjab",dir=".",save=TRUE)
mi_bowling <- getTeamBowlingDetails("Mumbai Indians",dir=".",save=TRUE)
rcb_bowling <- getTeamBowlingDetails("Royal Challengers Bangalore",dir=".",save=TRUE)
rr_bowling <- getTeamBowlingDetails("Rajasthan Royals",dir=".",save=TRUE)
fl <- list.files(".","BowlingDetails.RData")
file.copy(fl, "C:/software/cricket-package/cricsheet/cleanup/IPL/part4")

14. Get bowling details of the individual IPL bowlers

This function is used to get the individual bowling record for a specified bowler of the country as in the functions below. For analyzing the bowling performances the following cricketers have been chosen based on the bowling scorecard from my post yorkr crashes the IPL party ! – Part 3

  1. Ravichander Ashwin (CSK)
  2. DJ Bravo (CSK)
  3. PP Chawla (KXIP)
  4. Harbhajan Singh (MI)
  5. R Vinay Kumar (RCB)
  6. SK Trivedi (RR)
setwd("C:/software/cricket-package/cricsheet/cleanup/IPL/part4")
ashwin <- getBowlerWicketDetails(team="Chennai Super Kings",name="R Ashwin",dir=".")
bravo <-  getBowlerWicketDetails(team="Chennai Super Kings",name="DJ Bravo",dir=".")
chawla <-  getBowlerWicketDetails(team="Kings XI Punjab",name="PP Chawla",dir=".")
harbhajan <-  getBowlerWicketDetails(team="Mumbai Indians",name="Harbhajan Singh",dir=".")
vinay <-  getBowlerWicketDetails(team="Royal Challengers Bangalore",name="R Vinay Kumar",dir=".")
sktrivedi <-  getBowlerWicketDetails(team="Rajasthan Royals",name="SK Trivedi",dir=".")

15. Bowler Mean Economy Rate (in IPL matches)

Ashwin & Chawla have the best economy rates of in the IPL teams, followed by Harbhajan Singh

p1<-bowlerMeanEconomyRate(ashwin,"R Ashwin")
p2<-bowlerMeanEconomyRate(bravo, "DJ Bravo")
p3<-bowlerMeanEconomyRate(chawla, "PP Chawla")
p4<-bowlerMeanEconomyRate(harbhajan, "Harbhajan Singh")
p5<-bowlerMeanEconomyRate(vinay, "R Vinay")
p6<-bowlerMeanEconomyRate(sktrivedi, "SK Trivedi")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

meanER-1

16. Bowler Mean Runs conceded (in IPL matches)

p1<-bowlerMeanRunsConceded(ashwin,"R Ashwin")
p2<-bowlerMeanRunsConceded(bravo, "DJ Bravo")
p3<-bowlerMeanRunsConceded(chawla, "PP Chawla")
p4<-bowlerMeanRunsConceded(harbhajan, "Harbhajan Singh")
p5<-bowlerMeanRunsConceded(vinay, "R Vinay")
p6<-bowlerMeanRunsConceded(sktrivedi, "SK Trivedi")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

meanRunsConceded-1

17. Bowler Moving average (in IPL matches)

Harbhajan’s moving average is the best hovering around 2 wickets

p1<-bowlerMovingAverage(ashwin,"R Ashwin")
p2<-bowlerMovingAverage(bravo, "DJ Bravo")
p3<-bowlerMovingAverage(chawla, "PP Chawla")
p4<-bowlerMovingAverage(harbhajan, "Harbhajan Singh")
p5<-bowlerMovingAverage(vinay, "R Vinay")
p6<-bowlerMovingAverage(sktrivedi, "SK Trivedi")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

bowlerMA-1

17. Bowler cumulative average wickets (in IPL matches)

The cumulative average tells a different story. DJ Bravo and R Vinay have a cumulative average of 2 wickets. All others are around 1.5

p1<-bowlerCumulativeAvgWickets(ashwin,"R Ashwin")
p2<-bowlerCumulativeAvgWickets(bravo, "DJ Bravo")
p3<-bowlerCumulativeAvgWickets(chawla, "PP Chawla")
p4<-bowlerCumulativeAvgWickets(harbhajan, "Harbhajan Singh")
p5<-bowlerCumulativeAvgWickets(vinay, "R Vinay")
p6<-bowlerCumulativeAvgWickets(sktrivedi, "SK Trivedi")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

cumWkts-1

18. Bowler cumulative Economy Rate (ER) (in IPL matches)

Ashwin & Harbhajan have the best cumulative economy rate

p1<-bowlerCumulativeAvgEconRate(ashwin,"R Ashwin")
p2<-bowlerCumulativeAvgEconRate(bravo, "DJ Bravo")
p3<-bowlerCumulativeAvgEconRate(chawla, "PP Chawla")
p4<-bowlerCumulativeAvgEconRate(harbhajan, "Harbhajan Singh")
p5<-bowlerCumulativeAvgEconRate(vinay, "R Vinay")
p6<-bowlerCumulativeAvgEconRate(sktrivedi, "SK Trivedi")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

cumER-1

19. Bowler wicket plot (in IPL matches)

The plot below gives the average wickets versus number of overs

p1<-bowlerWicketPlot(ashwin,"R Ashwin")
p2<-bowlerWicketPlot(bravo, "DJ Bravo")
p3<-bowlerWicketPlot(chawla, "PP Chawla")
p4<-bowlerWicketPlot(harbhajan, "Harbhajan Singh")
p5<-bowlerWicketPlot(vinay, "R Vinay")
p6<-bowlerWicketPlot(sktrivedi, "SK Trivedi")
grid.arrange(p1,p2,p3,p4,p5,p6, ncol=3)

wktPlot-1

20. Bowler wicket against opposing IPL teams

bowlerWicketsAgainstOpposition(ashwin,"R Ashwin")

wktsOppn1-1

bowlerWicketsAgainstOpposition(bravo, "DJ Bravo")

wktsOppn2-1

bowlerWicketsAgainstOpposition(chawla, "PP Chawla")

wktsOppn3-1

bowlerWicketsAgainstOpposition(harbhajan, "Harbhajan Singh")

wktsOppn4-1

bowlerWicketsAgainstOpposition(vinay, "R Vinay")

wktsOppn5-1

bowlerWicketsAgainstOpposition(sktrivedi, "SK Trivedi")

wktsOppn6-1

21. Bowler wicket at cricket grounds in IPL

bowlerWicketsVenue(ashwin,"R Ashwin")

wktsAve1-1

bowlerWicketsVenue(bravo, "DJ Bravo")

wktsAve2-1

bowlerWicketsVenue(chawla, "PP Chawla")

wktsAve3-1

bowlerWicketsVenue(harbhajan, "Harbhajan Singh")

wktsAve4-1

bowlerWicketsVenue(vinay, "R Vinay")

wktsAve5-1

bowlerWicketsVenue(sktrivedi, "SK Trivedi")

wktsAve6-1

22. Get Delivery wickets for IPL bowlers

This function creates a dataframe of deliveries and the wickets taken

setwd("C:/software/cricket-package/york-test/yorkrData/IPL/IPL-T20-matches")
ashwin1 <- getDeliveryWickets(team="Chennai Super Kings",dir=".",name="R Ashwin",save=FALSE)
bravo1 <- getDeliveryWickets(team="Chennai Super Kings",dir=".",name="DJ Bravo",save=FALSE)
chawla1 <- getDeliveryWickets(team="Kings XI Punjab",dir=".",name="PP Chawla",save=FALSE)
harbhajan1 <- getDeliveryWickets(team="Mumbai Indians",dir=".",name="Harbhajan Singh",save=FALSE)
vinay1 <- getDeliveryWickets(team="Royal Challengers Bangalore",dir=".",name="R Vinay",save=FALSE)
sktrivedi1 <- getDeliveryWickets(team="Rajasthan Royals",dir=".",name="SK Trivedi",save=FALSE)

23. Predict number of deliveries to wickets in IPL T20

#Ashwin takes 
par(mfrow=c(1,2))
par(mar=c(4,4,2,2))

bowlerWktsPredict(ashwin1,"R Ashwin")
bowlerWktsPredict(bravo1, "DJ Bravo")

wktsPred1-1

par(mfrow=c(1,2))
par(mar=c(4,4,2,2))
bowlerWktsPredict(chawla1, "PP Chawla")
bowlerWktsPredict(harbhajan1, "Harbhajan Singh")

wktsPred2-1

par(mfrow=c(1,2))
par(mar=c(4,4,2,2))
bowlerWktsPredict(vinay1, "R Vinay")
bowlerWktsPredict(sktrivedi1, "SK Trivedi")

wktsPred3-1

Conclusion

This concludes the 4 part writeup of yorkr’s handling of IPL Twenty20’s. You can fork/clone the code from Github at yorkr.

As I mentioned earlier, this brings to a close to all my posts based on my R cricket package yorkr. I do have a couple of more ideas, but this will take some time I think.

Hope you have a great time with my yorkr package!

Till next time, adieu!

Important note: Do check out my other posts using yorkr at yorkr-posts

Also see

  1. Introducing cricket package yorkr: Part 3-Foxed by flight!
  2. Introducing cricketr! : An R package to analyze performances of cricketers
  3. Cricket analytics with cricketr in paperback and Kindle versions
  4. Bend it like Bluemix, MongoDB with auto-scaling – Part 1
  5. The dark side of the Internet
  6. Modeling a Car in Android
  7. yorkr pads up for the Twenty20s: Part 1- Analyzing team”s match performance
  8. Cricket analytics with cricketr

yorkr crashes the IPL party! – Part 3!

Introduction

“I’m sorry, if you were right, I’d agree with you.”

                 Robin Williams

Get your facts first. Then you can distort them as you please.

                 Mark Twain
                 

Do not take life too seriously. You will never get out of it alive.

                 Elbert Hubbard

This is the 3rd post in the “yorkr crashes the IPL party!” series. The 2 earlier ones were

  1. yorkr crashes the IPL party ! – Part 1
  2. yorkr crashes the IPL party ! – Part 2

This post deals with Class 3 functions, namely the performances of an IPL team in all matches against all other IPL teams matches for e.g Chennai Super Kings against all other IPL teams or Delhi Daredevils against all other teams.

If you are passionate about cricket, and love analyzing cricket performances, then check out my 2 racy books on cricket! In my books, I perform detailed yet compact analysis of performances of both batsmen, bowlers besides evaluating team & match performances in Tests , ODIs, T20s & IPL. You can buy my books on cricket from Amazon at $12.99 for the paperback and $4.99/$6.99 respectively for the kindle versions. The books can be accessed at Cricket analytics with cricketr  and Beaten by sheer pace-Cricket analytics with yorkr  A must read for any cricket lover! Check it out!!

1

 

This post has also been published at RPubs IPLT20-Part3 and can also be downloaded as a PDF document from IPLT20-Part3.pdf.

You can clone/fork the code for the package yorkr from Github at yorkr-package

Checkout my interactive Shiny apps GooglyPlus (plots & tables) and Googly (only plots) which can be used to analyze IPL players, teams and matches.

Important note 1: Do check out all the posts on the python avatar of yorkr, namely ‘yorkpy’ in my post ‘Pitching yorkpy … short of good length to IPL – Part 1

The list of functions in Class 3 are

  1. teamBattingScorecardAllOppnAllMatches()
  2. teamBatsmenPartnershipAllOppnAllMatches()
  3. teamBatsmenPartnershipAllOppnAllMatchesPlot()
  4. teamBatsmenVsBowlersAllOppnAllMatchesRept()
  5. teamBatsmenVsBowlersAllOppnAllMatchesPlot()
  6. teamBowlingScorecardAllOppnAllMatchesMain()
  7. teamBowlersVsBatsmenAllOppnAllMatchesRept()
  8. teamBowlersVsBatsmenAllOppnAllMatchesPlot()
  9. teamBowlingWicketKindAllOppnAllMatches()
  10. teamBowlingWicketRunsAllOppnAllMatches()

Note: As in the previous parts the plots usually have the plot=TRUE/FALSE parameter. This is to allow the user to get a return value of the desired dataframe. The user can choose to plot this, in any way he/she likes for e.g in interactive charts using rcharts, ggvis,googleVis,plotly etc

1. Install the package from CRAN

The yorkr package can be installed directly from CRAN now! Install the yorkr package.

if (!require("yorkr")) {
  install.packages("yorkr") 
  library("yorkr")
}
rm(list=ls())

2. Get data for all matches against all oppositions for a team

We can get all IPL matches against all other IPL teams using the function below. The dir parameter should point to the folder in which the RData files where the individual IPL T20 matches exist. This function creates a data frame of all the matches and also saves the resulting dataframe as RData

setwd("C:/software/cricket-package/york-test/yorkrData/IPL/IPL-T20-team-allMatches-allOppostions")
# Get all matches against all oppositions for India and save as RData
matches <-getAllMatchesAllOpposition("Royal Challengers Bangalore",dir=".",save=TRUE)
dim(matches)
## [1] 28199    25

“`

3. Save data for all matches against all oppositions

This can be done locally using the function below. This function gets all the IPL T20 matches of the IPL team against all other IPL teams and combines them into a single dataframe and saves it in the current folder. The current implementation expects that the the RData files of individual matches are in ../data folder. Since I already have converted this I will not be running this again. However you will need to use this function for future matches!

# To be available in yorkr_0.0.5. You can install from Github though.
#saveAllMatchesAllOppositionIPLT20()

4. Load data directly for all matches between 2 teams

As in my earlier posts (IPLT20-Part1 & IPLT20-Part2) I have however already saved the data, for all IPL matches of the individual IPL teams, against all other IPL teams. The data for these matches for the individual IPL teams can be downloaded directly from Github folder at IPL-T20-team-allmatches-allOppositions

Note: The dataframe for the different for all the matches of a IPL team against all other IPL teams can be loaded directly into your code.Feel free to download the zip of the data and to perform any data mining on them.

If you do come up with interesting insights, I would appreciate if attribute the source to Cricsheet(http://cricsheet.org), and my package yorkr and my blog Giga thoughts, besides dropping me a note.*

As in my earlier post I will be directly loading the saved files. For the illustration of the functions, I will any random IPL team for the funtions for illustration

setwd("C:/software/cricket-package/york-test/yorkrData/IPL/IPL-T20-team-allMatches-allOppostions")
load("allMatchesAllOpposition-Chennai Super Kings.RData")
csk_Allmatches <- matches
load("allMatchesAllOpposition-Deccan Chargers.RData")
dc_Allmatches <- matches
load("allMatchesAllOpposition-Delhi Daredevils.RData")
dd_Allmatches <- matches
load("allMatchesAllOpposition-Kings XI Punjab.RData")
kxip_Allmatches <- matches
load("allMatchesAllOpposition-Kochi Tuskers Kerala.RData")
ktk_Allmatches <- matches
load("allMatchesAllOpposition-Kolkata Knight Riders.RData")
kkr_Allmatches <- matches
load("allMatchesAllOpposition-Mumbai Indians.RData")
mi_Allmatches <- matches
load("allMatchesAllOpposition-Pune Warriors.RData")
pw_Allmatches <- matches
load("allMatchesAllOpposition-Rajasthan Royals.RData")
rr_Allmatches <- matches
load("allMatchesAllOpposition-Royal Challengers Bangalore.RData")
rcb_Allmatches <- matches
load("allMatchesAllOpposition-Sunrisers Hyderabad.RData")
sh_Allmatches <- matches

5. Team IPL T20 Batting Scorecard (all matches with all opposing IPL teams)

The following functions shows the batting scorecards for each IPL team. It returns a dataframe with the top batsmen in each IPL team

#Top IPL Twenty20 batsmen for Chennai Super Kings
m <-teamBattingScorecardAllOppnAllMatches(csk_Allmatches,theTeam="Chennai Super Kings")
## Total= 19312
m
## Source: local data frame [46 x 5]
## 
##         batsman ballsPlayed fours sixes  runs
##          (fctr)       (int) (int) (int) (dbl)
## 1      SK Raina        2513   312   144  3567
## 2      MS Dhoni        2036   206   121  2887
## 3    MEK Hussey        1361   178    43  1721
## 4       M Vijay        1220   140    64  1574
## 5   S Badrinath        1171   152    28  1427
## 6  F du Plessis         837    92    29  1081
## 7     ML Hayden         725   118    43  1077
## 8      DR Smith         673    98    42   886
## 9     JA Morkel         549    50    47   812
## 10  BB McCullum         562    78    42   809
## ..          ...         ...   ...   ...   ...
#Top IPL Twenty20 batsmen for Deccan Chargers
m <-teamBattingScorecardAllOppnAllMatches(dc_Allmatches,theTeam="Deccan Chargers")
## Total= 10885
m
## Source: local data frame [58 x 5]
## 
##            batsman ballsPlayed fours sixes  runs
##             (fctr)       (int) (int) (int) (dbl)
## 1     AC Gilchrist         802   136    64  1220
## 2        RG Sharma         866    96    51  1170
## 3         S Dhawan         737   106    25   969
## 4        A Symonds         600    65    38   839
## 5         HH Gibbs         695    75    29   805
## 6         CL White         425    47    22   583
## 7    KC Sangakkara         458    65     9   558
## 8         TL Suman         437    41    20   544
## 9        JP Duminy         360    22    19   449
## 10 Y Venugopal Rao         357    32    19   446
## ..             ...         ...   ...   ...   ...
#Top IPL Twenty20 batsmen for Delhi Daredevils
m <-teamBattingScorecardAllOppnAllMatches(dd_Allmatches,theTeam="Delhi Daredevils")
## Total= 16324
m
## Source: local data frame [76 x 5]
## 
##             batsman ballsPlayed fours sixes  runs
##              (fctr)       (int) (int) (int) (dbl)
## 1          V Sehwag        1290   257    84  2127
## 2         DA Warner        1050   146    58  1435
## 3         G Gambhir         828   126    12  1058
## 4        KD Karthik         762    82    27   979
## 5         JP Duminy         585    44    40   796
## 6  DPMD Jayawardene         600    79     9   666
## 7    AB de Villiers         541    50    13   650
## 8      KP Pietersen         431    56    27   599
## 9        TM Dilshan         452    62    16   562
## 10        KM Jadhav         394    42    19   537
## ..              ...         ...   ...   ...   ...
#Top IPL Twenty20 batsmen for Kolkata Knight Riders
m <-teamBattingScorecardAllOppnAllMatches(kkr_Allmatches,theTeam="Kolkata Knight Riders")
## Total= 16001
m
## Source: local data frame [69 x 5]
## 
##        batsman ballsPlayed fours sixes  runs
##         (fctr)       (int) (int) (int) (dbl)
## 1    G Gambhir        1583   235    33  2024
## 2    YK Pathan         937   100    64  1317
## 3    JH Kallis        1193   128    23  1294
## 4   SC Ganguly         909   105    36  1031
## 5   RV Uthappa         739   118    25  1024
## 6    MK Tiwary         878    86    23  1002
## 7  BB McCullum         709    92    32   882
## 8    MK Pandey         518    58    17   626
## 9     MS Bisla         470    60    16   542
## 10   DJ Hussey         389    31    28   511
## ..         ...         ...   ...   ...   ...
#Top IPL Twenty20 batsmen for Kochi Tuskers Kerala
m <-teamBattingScorecardAllOppnAllMatches(ktk_Allmatches,theTeam="Kochi Tuskers Kerala")
## Total= 1758
m
## Source: local data frame [19 x 5]
## 
##             batsman ballsPlayed fours sixes  runs
##              (fctr)       (int) (int) (int) (dbl)
## 1       BB McCullum         265    35    16   357
## 2  DPMD Jayawardene         249    35     5   299
## 3          BJ Hodge         230    26     9   285
## 4         RA Jadeja         225    20    14   283
## 5          PA Patel         181    25     2   202
## 6         M Klinger          74     9    NA    73
## 7     R Vinay Kumar          47     4     1    50
## 8          RV Gomez          47     4     1    46
## 9        VVS Laxman          38     3     2    44
## 10          OA Shah          14     1     2    26
## 11      NLTC Perera          27     4    NA    23
## 12 Y Gnaneswara Rao          17     3    NA    19
## 13        KM Jadhav          23     1    NA    18
## 14          B Akhil           9    NA     1    13
## 15         RR Powar          13    NA    NA    11
## 16   M Muralitharan           6    NA    NA     5
## 17         RP Singh           3    NA    NA     2
## 18      S Sreesanth           8    NA    NA     1
## 19   P Parameswaran           1    NA    NA     1
#Top IPL Twenty20 batsmen for Kings XI Punjab
m <-teamBattingScorecardAllOppnAllMatches(kxip_Allmatches,theTeam="Kings XI Punjab")
## Total= 17333
m
## Source: local data frame [74 x 5]
## 
##             batsman ballsPlayed fours sixes  runs
##              (fctr)       (int) (int) (int) (dbl)
## 1          SE Marsh        1444   211    65  1973
## 2         DA Miller         865    89    70  1319
## 3     KC Sangakkara         755   117    18  1000
## 4      Yuvraj Singh         643    67    46   859
## 5      AC Gilchrist         636   103    28   849
## 6  DPMD Jayawardene         546    81    24   792
## 7     Mandeep Singh         616    96     8   763
## 8        GJ Maxwell         388    61    44   697
## 9         DJ Hussey         567    51    26   695
## 10          WP Saha         437    49    28   611
## ..              ...         ...   ...   ...   ...
#Top IPL Twenty20 batsmen for Mumbai Indians
m <-teamBattingScorecardAllOppnAllMatches(mi_Allmatches,theTeam="Mumbai Indians")
## Total= NA
m
## Source: local data frame [73 x 5]
## 
##          batsman ballsPlayed fours sixes  runs
##           (fctr)       (int) (int) (int) (dbl)
## 1   SR Tendulkar        1806   277    29  2221
## 2      RG Sharma        1657   176    96  2201
## 3      AT Rayudu        1507   169    63  1963
## 4     KA Pollard        1117   116   106  1707
## 5    LMP Simmons         720    99    35   934
## 6  ST Jayasuriya         504    84    37   748
## 7     KD Karthik         591    82    16   727
## 8       DR Smith         449    62    26   600
## 9      JP Duminy         437    39    16   523
## 10     SS Tiwary         332    32    19   458
## ..           ...         ...   ...   ...   ...
#Top IPL Twenty20 batsmen for Pune Warriors
m <-teamBattingScorecardAllOppnAllMatches(pw_Allmatches,theTeam="Pune Warriors")
## Total= 5871
m
## Source: local data frame [43 x 5]
## 
##         batsman ballsPlayed fours sixes  runs
##          (fctr)       (int) (int) (int) (dbl)
## 1    RV Uthappa         880   106    30  1078
## 2  Yuvraj Singh         427    38    30   551
## 3      JD Ryder         396    60    19   548
## 4     SPD Smith         388    39    18   521
## 5     MK Pandey         421    44    14   459
## 6      AJ Finch         293    52    13   408
## 7    SC Ganguly         321    33     6   318
## 8    AD Mathews         246    10    14   299
## 9      M Manhas         234    19     8   247
## 10     MR Marsh         153     8    13   190
## ..          ...         ...   ...   ...   ...
#Top Twenty20 batsmen for Rajasthan Royals
m <-teamBattingScorecardAllOppnAllMatches(rr_Allmatches,theTeam="Rajasthan Royals")
## Total= 16359
m
## Source: local data frame [80 x 5]
## 
##      batsman ballsPlayed fours sixes  runs
##       (fctr)       (int) (int) (int) (dbl)
## 1  SR Watson        1609   237   107  2342
## 2  AM Rahane        1637   218    38  2031
## 3   R Dravid        1098   171    10  1247
## 4  YK Pathan         601    89    59   990
## 5  SV Samson         596    59    30   740
## 6   GC Smith         601    88     9   697
## 7   BJ Hodge         423    41    24   592
## 8  STR Binny         438    43    21   572
## 9    KK Nair         369    56    14   511
## 10   NV Ojha         385    49    25   501
## ..       ...         ...   ...   ...   ...
#Top IPL Twenty20 batsmen for Royal Challengers Bangalore
m <-teamBattingScorecardAllOppnAllMatches(rcb_Allmatches,theTeam="Royal Challengers Bangalore")
## Total= 17288
m
## Source: local data frame [85 x 5]
## 
##           batsman ballsPlayed fours sixes  runs
##            (fctr)       (int) (int) (int) (dbl)
## 1         V Kohli        2470   274   111  3125
## 2        CH Gayle        1704   217   204  2736
## 3  AB de Villiers        1170   167    90  1899
## 4       JH Kallis         952   123    20  1093
## 5        R Dravid         706    96    17   889
## 6      TM Dilshan         510    78     8   587
## 7      RV Uthappa         380    39    30   549
## 8       SS Tiwary         456    26    17   487
## 9     LRPL Taylor         318    33    28   464
## 10     MA Agarwal         332    41    22   433
## ..            ...         ...   ...   ...   ...
#Top IPL Twenty20 batsmen for Sunrisers Hyderabad
m <-teamBattingScorecardAllOppnAllMatches(sh_Allmatches,theTeam="Sunrisers Hyderabad")
## Total= 6117
m
## Source: local data frame [32 x 5]
## 
##         batsman ballsPlayed fours sixes  runs
##          (fctr)       (int) (int) (int) (dbl)
## 1     DA Warner         715   104    45  1090
## 2      S Dhawan         835   131    18  1040
## 3       NV Ojha         277    26    21   369
## 4      AJ Finch         251    31     9   309
## 5      KL Rahul         284    20     8   308
## 6  MC Henriques         220    20    13   296
## 7      PA Patel         244    37     4   292
## 8     GH Vihari         281    23     1   261
## 9     DJG Sammy         198    14    17   259
## 10    KV Sharma         191    10    11   227
## ..          ...         ...   ...   ...   ...

6. Team Batting Scorecard in IPL Twenty20 matches against all opposing IPL teams

The following functions show the best batsmen from the opposition ‘theTeam’ in the ‘matches’. For e.g. when the matches=csk_Allmatches and theTeam=“Royal Challengers Bangalore” then the returned dataframe shows the best Royal Challengers Bangalore batsmen against CSK

#Top IPL T20  Royal Challengers Bangalore batsmen against Chennai Super Kings
m <-teamBattingScorecardAllOppnAllMatches(matches=csk_Allmatches,theTeam="Royal Challengers Bangalore")
## Total= 2485
m
## Source: local data frame [54 x 5]
## 
##           batsman ballsPlayed fours sixes  runs
##            (fctr)       (int) (int) (int) (dbl)
## 1         V Kohli         542    49    30   694
## 2        CH Gayle         204    12    23   270
## 3  AB de Villiers         147    26     9   241
## 4        R Dravid         111    18    NA   133
## 5      MA Agarwal          96    15     4   120
## 6      RV Uthappa          71     7     8   115
## 7       JH Kallis          95    19    NA   109
## 8       SS Tiwary          84     4     3    86
## 9       MK Pandey          67    10    NA    73
## 10    LRPL Taylor          62     2     3    64
## ..            ...         ...   ...   ...   ...
#Top IPL T20 Mumbai Indians batsmen against Chennai Super Kings
m <-teamBattingScorecardAllOppnAllMatches(matches=csk_Allmatches,theTeam="Mumbai Indians")
## Total= 3223
m
## Source: local data frame [43 x 5]
## 
##            batsman ballsPlayed fours sixes  runs
##             (fctr)       (int) (int) (int) (dbl)
## 1        RG Sharma         343    37    14   444
## 2       KA Pollard         209    25    26   351
## 3     SR Tendulkar         259    38     5   320
## 4        AT Rayudu         243    17    14   299
## 5      LMP Simmons         219    23    16   281
## 6    ST Jayasuriya          91    21    13   190
## 7  Harbhajan Singh         115    13    12   170
## 8         DR Smith          90    16    10   159
## 9         AM Nayar          59    10     6   113
## 10      KD Karthik         100    13     2   109
## ..             ...         ...   ...   ...   ...
#Top IPL T20 Rajasthan Royals batsmen against Pune Warriors
m <-teamBattingScorecardAllOppnAllMatches(pw_Allmatches,theTeam="Rajasthan Royals")
## Total= 743
m
## Source: local data frame [13 x 5]
## 
##        batsman ballsPlayed fours sixes  runs
##         (fctr)       (int) (int) (int) (dbl)
## 1    AM Rahane         134    18     2   173
## 2    SR Watson         100    17     9   165
## 3     R Dravid         140    25     1   165
## 4   AL Menaria          42     1     3    47
## 5  LRPL Taylor          33     4     2    47
## 6     BJ Hodge          37     3    NA    40
## 7    STR Binny          22     2     2    39
## 8  JP Faulkner          16     1     1    22
## 9      J Botha          20     2    NA    19
## 10   DH Yagnik           8     2    NA    12
## 11   SV Samson           6     2    NA    10
## 12     OA Shah           7    NA    NA     4
## 13 MDKJ Perera           1    NA    NA     0
#Top IPL T20 Sunrisers Hyderabad batsmen against West Indies
m <-teamBattingScorecardAllOppnAllMatches(kkr_Allmatches,theTeam="Sunrisers Hyderabad")
## Total= 814
m
## Source: local data frame [27 x 5]
## 
##            batsman ballsPlayed fours sixes  runs
##             (fctr)       (int) (int) (int) (dbl)
## 1         S Dhawan         138    19     3   159
## 2        DA Warner          76    14     6   133
## 3         PA Patel          65     9     1    74
## 4          NV Ojha          56     7     5    66
## 5        DJG Sammy          44     1     5    53
## 6     MC Henriques          38     3     2    48
## 7        KV Sharma          35     1     3    46
## 8      NLTC Perera          34     2     1    40
## 9         CL White          33     3     1    36
## 10 Y Venugopal Rao          24     4    NA    27
## ..             ...         ...   ...   ...   ...

7. Team Batting Partnerships of an IL T20 matches against all opposing teams

This gives the top batting partnerships in each IPL team in all its matches against all opposing teams. The report can either be a ‘summary’ or a ‘detailed’ breakup of the batting partnerships.

# The function gives the names of highest IPL T20 partnership for Chennai Super Kings. The default report parameter is "summary"
m <- teamBatsmenPartnershipAllOppnAllMatches(csk_Allmatches,theTeam='Chennai Super Kings')
m
## Source: local data frame [46 x 2]
## 
##         batsman totalRuns
##          (fctr)     (dbl)
## 1      SK Raina      3567
## 2      MS Dhoni      2887
## 3    MEK Hussey      1721
## 4       M Vijay      1574
## 5   S Badrinath      1427
## 6  F du Plessis      1081
## 7     ML Hayden      1077
## 8      DR Smith       886
## 9     JA Morkel       812
## 10  BB McCullum       809
## ..          ...       ...
# When the report parameter is 'detailed' then the detailed break up of the T20 partnership is returned as a data frame
m <- teamBatsmenPartnershipAllOppnAllMatches(csk_Allmatches,theTeam='Chennai Super Kings',report="detailed")
head(m,30)
##     batsman   nonStriker partnershipRuns totalRuns
## 1  SK Raina   SP Fleming              20      3567
## 2  SK Raina   S Anirudha              33      3567
## 3  SK Raina  S Badrinath             413      3567
## 4  SK Raina     MS Dhoni             546      3567
## 5  SK Raina    JA Morkel             142      3567
## 6  SK Raina      MS Gony              10      3567
## 7  SK Raina    ML Hayden             219      3567
## 8  SK Raina     JDP Oram               6      3567
## 9  SK Raina     DR Smith             239      3567
## 10 SK Raina      M Vijay             325      3567
## 11 SK Raina      JM Kemp              10      3567
## 12 SK Raina     R Ashwin               0      3567
## 13 SK Raina   MEK Hussey             617      3567
## 14 SK Raina F du Plessis             336      3567
## 15 SK Raina    RA Jadeja              50      3567
## 16 SK Raina     DJ Bravo              87      3567
## 17 SK Raina     PA Patel             166      3567
## 18 SK Raina     S Vidyut               1      3567
## 19 SK Raina   A Flintoff              30      3567
## 20 SK Raina      WP Saha              16      3567
## 21 SK Raina  BB McCullum             186      3567
## 22 SK Raina    GJ Bailey              10      3567
## 23 SK Raina    DJ Hussey              95      3567
## 24 SK Raina      M Ntini               2      3567
## 25 SK Raina  C Ganapathy               8      3567
## 26 MS Dhoni   SP Fleming              11      2887
## 27 MS Dhoni   S Anirudha              29      2887
## 28 MS Dhoni     SK Raina             488      2887
## 29 MS Dhoni  S Badrinath             341      2887
## 30 MS Dhoni    JA Morkel             209      2887
#Top IPL T20 Rajasthan Royal partnerships 
teamBatsmenPartnershipAllOppnAllMatches(rr_Allmatches,theTeam='Rajasthan Royals',report="summary")
## Source: local data frame [80 x 2]
## 
##      batsman totalRuns
##       (fctr)     (dbl)
## 1  SR Watson      2342
## 2  AM Rahane      2031
## 3   R Dravid      1247
## 4  YK Pathan       990
## 5  SV Samson       740
## 6   GC Smith       697
## 7   BJ Hodge       592
## 8  STR Binny       572
## 9    KK Nair       511
## 10   NV Ojha       501
## ..       ...       ...
#Top IPL T20 Mumbai Indians batting partnerships 
m <- teamBatsmenPartnershipAllOppnAllMatches(mi_Allmatches,theTeam='Mumbai Indians',report="detailed")
m[1:30,]
##         batsman        nonStriker partnershipRuns totalRuns
## 1  SR Tendulkar     ST Jayasuriya             254      2221
## 2  SR Tendulkar        RV Uthappa              10      2221
## 3  SR Tendulkar          DJ Bravo              66      2221
## 4  SR Tendulkar          AM Nayar              41      2221
## 5  SR Tendulkar   Harbhajan Singh              50      2221
## 6  SR Tendulkar          S Dhawan             183      2221
## 7  SR Tendulkar         JP Duminy             107      2221
## 8  SR Tendulkar            Z Khan               2      2221
## 9  SR Tendulkar           PR Shah              19      2221
## 10 SR Tendulkar         SS Tiwary              81      2221
## 11 SR Tendulkar         AT Rayudu             261      2221
## 12 SR Tendulkar        KA Pollard              65      2221
## 13 SR Tendulkar         R Sathish              62      2221
## 14 SR Tendulkar         R McLaren              33      2221
## 15 SR Tendulkar           RE Levi              14      2221
## 16 SR Tendulkar         RG Sharma             226      2221
## 17 SR Tendulkar      JEC Franklin              82      2221
## 18 SR Tendulkar          DR Smith             187      2221
## 19 SR Tendulkar        KD Karthik             104      2221
## 20 SR Tendulkar        RT Ponting              63      2221
## 21 SR Tendulkar           AP Tare              36      2221
## 22 SR Tendulkar       DJ Thornely              21      2221
## 23 SR Tendulkar          HH Gibbs              13      2221
## 24 SR Tendulkar          TL Suman              19      2221
## 25 SR Tendulkar         A Symonds              13      2221
## 26 SR Tendulkar         DJ Jacobs              68      2221
## 27 SR Tendulkar         AM Rahane              36      2221
## 28 SR Tendulkar Mohammad Ashraful               1      2221
## 29 SR Tendulkar       RJ Peterson               9      2221
## 30 SR Tendulkar       AC Blizzard              77      2221
#Top IPL T20 Royal Challengers Bangalore batting partnerships 
m <-teamBatsmenPartnershipAllOppnAllMatches(rcb_Allmatches,theTeam='Royal Challengers Bangalore',report="detailed")
m[1:30,]
##    batsman      nonStriker partnershipRuns totalRuns
## 1  V Kohli      SP Goswami               7      3125
## 2  V Kohli       JH Kallis             181      3125
## 3  V Kohli        R Dravid              72      3125
## 4  V Kohli   Misbah-ul-Haq              13      3125
## 5  V Kohli      MV Boucher              39      3125
## 6  V Kohli         B Akhil               0      3125
## 7  V Kohli         P Kumar              17      3125
## 8  V Kohli        PA Patel              33      3125
## 9  V Kohli       JA Morkel               2      3125
## 10 V Kohli       MK Pandey              19      3125
## 11 V Kohli      RV Uthappa              32      3125
## 12 V Kohli    KP Pietersen              71      3125
## 13 V Kohli        CL White              25      3125
## 14 V Kohli      TM Dilshan              89      3125
## 15 V Kohli      MA Agarwal              74      3125
## 16 V Kohli  AB de Villiers             582      3125
## 17 V Kohli       SS Tiwary             154      3125
## 18 V Kohli       CA Pujara              56      3125
## 19 V Kohli      DL Vettori              12      3125
## 20 V Kohli        CH Gayle             855      3125
## 21 V Kohli   LA Pomersbach              39      3125
## 22 V Kohli J Syed Mohammad               1      3125
## 23 V Kohli      RR Bhatkal               0      3125
## 24 V Kohli   R Vinay Kumar              21      3125
## 25 V Kohli KB Arun Karthik               2      3125
## 26 V Kohli    Yuvraj Singh             126      3125
## 27 V Kohli          S Rana              23      3125
## 28 V Kohli    NJ Maddinson               6      3125
## 29 V Kohli   Mandeep Singh              23      3125
## 30 V Kohli      KD Karthik              92      3125

8. Batting Partnerships of opposing teams in IPL T20 matches with IPL team

When we use the dataframe rcb_Allmatches (matches of Royal Challengers Bangalore against all opposing teams) and choose another IPL team in the theTeam for e.g Rajasthan Royals then we will get the names of those top Rajasthan Royals batsmen against RCB.

# Top T20 Rajasthan Royals batting partnerships against Royal Challengers Bangalore (report="summary")
m <- teamBatsmenPartnershipAllOppnAllMatches(rcb_Allmatches,theTeam='Rajasthan Royals')
m
## Source: local data frame [50 x 2]
## 
##      batsman totalRuns
##       (fctr)     (dbl)
## 1  SR Watson       271
## 2  AM Rahane       256
## 3   R Dravid       177
## 4   GC Smith       146
## 5    KK Nair        92
## 6  YK Pathan        91
## 7  SPD Smith        91
## 8  SV Samson        87
## 9  STR Binny        80
## 10   NV Ojha        75
## ..       ...       ...
# Top T20 Kolkata Knight Riders  batting partnerships against Sunrisers Hyderabad (report="detailed")
m <- teamBatsmenPartnershipAllOppnAllMatches(sh_Allmatches,theTeam='Kolkata Knight Riders', report="detailed")
m[1:30,]
##             batsman       nonStriker partnershipRuns totalRuns
## 1         YK Pathan          J Botha              14       199
## 2         YK Pathan        PP Chawla              13       199
## 3         YK Pathan        JH Kallis              26       199
## 4         YK Pathan       RV Uthappa               3       199
## 5         YK Pathan        MK Pandey              28       199
## 6         YK Pathan RN ten Doeschate              22       199
## 7         YK Pathan  Shakib Al Hasan              36       199
## 8         YK Pathan         SA Yadav              32       199
## 9         YK Pathan          P Dogra              10       199
## 10        YK Pathan        SP Narine               9       199
## 11        YK Pathan    Iqbal Abdulla               6       199
## 12       RV Uthappa        G Gambhir              65       145
## 13       RV Uthappa        YK Pathan              19       145
## 14       RV Uthappa        MK Pandey              61       145
## 15        G Gambhir         MS Bisla              33       132
## 16        G Gambhir        JH Kallis              30       132
## 17        G Gambhir       RV Uthappa              69       132
## 18        MK Pandey        YK Pathan              31       103
## 19        MK Pandey       RV Uthappa              37       103
## 20        MK Pandey RN ten Doeschate              14       103
## 21        MK Pandey         SA Yadav               5       103
## 22        MK Pandey       AD Russell              16       103
## 23        JH Kallis       EJG Morgan              24        65
## 24        JH Kallis        G Gambhir              27        65
## 25        JH Kallis        YK Pathan              14        65
## 26       EJG Morgan        JH Kallis              56        56
## 27         MS Bisla        G Gambhir              43        43
## 28 RN ten Doeschate        YK Pathan              29        34
## 29 RN ten Doeschate        MK Pandey               5        34
## 30         SA Yadav        YK Pathan              11        20
#Top IPL T20 Chennai Super Kings batting partnerships  against Mumbai Indians
m <- teamBatsmenPartnershipAllOppnAllMatches(mi_Allmatches,theTeam='Chennai Super Kings',report="detailed")
head(m,30)
##     batsman      nonStriker partnershipRuns totalRuns
## 1  SK Raina       ML Hayden             104       537
## 2  SK Raina        PA Patel               5       537
## 3  SK Raina        MS Dhoni              23       537
## 4  SK Raina        DJ Bravo              59       537
## 5  SK Raina     S Badrinath              78       537
## 6  SK Raina         M Vijay              22       537
## 7  SK Raina      MEK Hussey              97       537
## 8  SK Raina    F du Plessis              43       537
## 9  SK Raina        DR Smith              51       537
## 10 SK Raina     BB McCullum               8       537
## 11 SK Raina       DJ Hussey              46       537
## 12 SK Raina      SP Fleming               1       537
## 13 MS Dhoni       ML Hayden              83       466
## 14 MS Dhoni        SK Raina               8       466
## 15 MS Dhoni        JDP Oram              10       466
## 16 MS Dhoni        DJ Bravo              63       466
## 17 MS Dhoni     S Badrinath              55       466
## 18 MS Dhoni Joginder Sharma              19       466
## 19 MS Dhoni         M Vijay               1       466
## 20 MS Dhoni      MEK Hussey               8       466
## 21 MS Dhoni    F du Plessis              24       466
## 22 MS Dhoni       JA Morkel              13       466
## 23 MS Dhoni       RA Jadeja              37       466
## 24 MS Dhoni        R Ashwin              52       466
## 25 MS Dhoni      B Laughlin              16       466
## 26 MS Dhoni      AS Rajpoot               9       466
## 27 MS Dhoni       CH Morris               1       466
## 28 MS Dhoni       MM Sharma              23       466
## 29 MS Dhoni     BB McCullum              14       466
## 30 MS Dhoni          P Negi              30       466
#Top IPL T20 Kochi Tusker Kerala batting partnerships  against Kings XI Punjab
m <- teamBatsmenPartnershipAllOppnAllMatches(kxip_Allmatches,theTeam='Kochi Tuskers Kerala',report="detailed")
head(m,30)
##             batsman       nonStriker partnershipRuns totalRuns
## 1  DPMD Jayawardene        RA Jadeja              12        76
## 2  DPMD Jayawardene      BB McCullum              42        76
## 3  DPMD Jayawardene         BJ Hodge               3        76
## 4  DPMD Jayawardene          OA Shah               9        76
## 5  DPMD Jayawardene         RV Gomez              10        76
## 6       BB McCullum DPMD Jayawardene              32        32
## 7           OA Shah DPMD Jayawardene              23        23
## 8         RA Jadeja DPMD Jayawardene              17        17
## 9          BJ Hodge DPMD Jayawardene               4         4
## 10         RV Gomez DPMD Jayawardene               2         2
## 11    R Vinay Kumar DPMD Jayawardene               1         1
## 12         PA Patel DPMD Jayawardene               0         0

9. Team Batting Partnership plots in Twenty20 matches against all opposing teams

Graphical plot of batting partnerships for the IPL teams

# Plot of IPL T20 batting partnerships of Chennai Super Kings (Suresh Raina  and MS Dhoni have the best IPL T20 partnerships for CSK)
teamBatsmenPartnershipAllOppnAllMatchesPlot(csk_Allmatches,"Chennai Super Kings",main="Chennai Super Kings")

batsmenPartnership1-1

# Plot of T20 batting partnerships of Royal Challengers Bangalore (Virat Kohli  and Chris Gayle lead)
teamBatsmenPartnershipAllOppnAllMatchesPlot(rcb_Allmatches,"Royal Challengers Bangalore",main="Royal Challengers Bangalore")

batsmenPartnership1-2

# Plot of IPL T20 batting partnerships of Kolkata Knight Riders (Gautham Gambhir and Yusuf Pathan head the list)
teamBatsmenPartnershipAllOppnAllMatchesPlot(kkr_Allmatches,"Kolkata Knight Riders",main="Kolkata Knight Riders")

batsmenPartnership1-3

10. Top opposition batting partnerships in IPL Twenty20 matches against all opposing teams

This gives the best performance of the team against a specified IPL team

# Top Sunrisers Hyderabad IPL T20 partnerships against Kings XI Punjab
teamBatsmenPartnershipAllOppnAllMatchesPlot(sh_Allmatches,"Sunrisers Hyderabad",main="Kings XI Punjab")

batsmenPartnership2-1

# Top Delhi Daredevils T20 partnerships against Deccan Chargers
teamBatsmenPartnershipAllOppnAllMatchesPlot(dd_Allmatches,"Delhi Daredevils",main="Deccan Chargers")

batsmenPartnership2-2

# Top Rajasthan Royals T20 partnerships against Chennai Super Kings 
teamBatsmenPartnershipAllOppnAllMatchesPlot(rr_Allmatches,"Rajasthan Royals",main="Chennai Super Kings")

batsmenPartnership2-3

11. Batsmen vs Bowlers in IPL Twenty20 matches against all opposing teams

The function below gives the top performance of batsmen against the opposing teams

# Top IPL T20 Chennai Super Kings batsmen against bowlers when rank=0
m <-teamBatsmenVsBowlersAllOppnAllMatchesRept(csk_Allmatches,"Chennai Super Kings",rank=0)
m
## Source: local data frame [46 x 2]
## 
##         batsman runsScored
##          (fctr)      (dbl)
## 1      SK Raina       3567
## 2      MS Dhoni       2887
## 3    MEK Hussey       1721
## 4       M Vijay       1574
## 5   S Badrinath       1427
## 6  F du Plessis       1081
## 7     ML Hayden       1077
## 8      DR Smith        886
## 9     JA Morkel        812
## 10  BB McCullum        809
## ..          ...        ...
# Performance of IPL T20  Rajasthan Royals batsman in T20 with rank=1 against all other IPL teams. This is Shane Watson for RR
m <-teamBatsmenVsBowlersAllOppnAllMatchesRept(rr_Allmatches,"Rajasthan Royals",rank=1,dispRows=30)
m
## Source: local data frame [30 x 3]
## Groups: batsman [1]
## 
##      batsman          bowler  runs
##       (fctr)          (fctr) (dbl)
## 1  SR Watson        M Kartik    94
## 2  SR Watson       RA Jadeja    73
## 3  SR Watson      SL Malinga    68
## 4  SR Watson         P Kumar    66
## 5  SR Watson       PP Chawla    63
## 6  SR Watson        R Ashwin    59
## 7  SR Watson Shakib Al Hasan    56
## 8  SR Watson  M Muralitharan    54
## 9  SR Watson       MM Sharma    50
## 10 SR Watson        DJ Bravo    49
## ..       ...             ...   ...
# Performance of Kolkata Knight Riders batsman in IPL T20 with rank=2 with all other IPL teams. This is Yusuf Pathan with
m <-teamBatsmenVsBowlersAllOppnAllMatchesRept(kkr_Allmatches,"Kolkata Knight Riders",rank=2,dispRows=30)
m
## Source: local data frame [30 x 3]
## Groups: batsman [1]
## 
##      batsman          bowler  runs
##       (fctr)          (fctr) (dbl)
## 1  YK Pathan        DW Steyn    75
## 2  YK Pathan        A Mishra    63
## 3  YK Pathan      SL Malinga    57
## 4  YK Pathan   R Vinay Kumar    39
## 5  YK Pathan Harbhajan Singh    36
## 6  YK Pathan       KV Sharma    33
## 7  YK Pathan         B Kumar    32
## 8  YK Pathan     Imran Tahir    27
## 9  YK Pathan       S Aravind    26
## 10 YK Pathan        M Morkel    25
## ..       ...             ...   ...

12. Batsmen vs Bowlers in IPL Twenty20 matches against all other IPL teams (continued)

# The RCB IPL T20 batsmen who has the best performance against Sunrisers Hyderabad bowlers
m <-teamBatsmenVsBowlersAllOppnAllMatchesRept(matches=sh_Allmatches,theTeam="Royal Challengers Bangalore",rank=1,dispRows=25)
m
## Source: local data frame [18 x 3]
## Groups: batsman [1]
## 
##    batsman          bowler  runs
##     (fctr)          (fctr) (dbl)
## 1  V Kohli       KV Sharma    48
## 2  V Kohli        A Mishra    35
## 3  V Kohli     NLTC Perera    31
## 4  V Kohli         B Kumar    26
## 5  V Kohli        I Sharma    25
## 6  V Kohli        DW Steyn    23
## 7  V Kohli         P Kumar    21
## 8  V Kohli       IK Pathan    16
## 9  V Kohli        CL White    13
## 10 V Kohli        TA Boult    11
## 11 V Kohli  A Ashish Reddy    10
## 12 V Kohli    Ankit Sharma    10
## 13 V Kohli       DJG Sammy     7
## 14 V Kohli   Parvez Rasool     7
## 15 V Kohli       RS Bopara     3
## 16 V Kohli    MC Henriques     2
## 17 V Kohli       GH Vihari     2
## 18 V Kohli Y Venugopal Rao     1
# All the top IPL T20 Delhi Daredevils batsmen against Kings XI Punjab in all of Indian matches
m <-teamBatsmenVsBowlersAllOppnAllMatchesRept(kxip_Allmatches,"Delhi Daredevils",rank=0)
m
## Source: local data frame [52 x 2]
## 
##             batsman runsScored
##              (fctr)      (dbl)
## 1          V Sehwag        250
## 2         DA Warner        245
## 3         G Gambhir        179
## 4        KD Karthik        175
## 5        MA Agarwal        128
## 6  DPMD Jayawardene        107
## 7      KP Pietersen        107
## 8           NV Ojha         86
## 9          M Manhas         83
## 10  Y Venugopal Rao         72
## ..              ...        ...
# The best Chennai Super Kings IPL T20 batsman(rank=0) against Delhi Daredevils and his performance against England bowlers
m <-teamBatsmenVsBowlersAllOppnAllMatchesRept(dd_Allmatches,"Chennai Super Kings",rank=1,dispRows=30)
m
## Source: local data frame [30 x 3]
## Groups: batsman [1]
## 
##     batsman        bowler  runs
##      (fctr)        (fctr) (dbl)
## 1  MS Dhoni     IK Pathan    33
## 2  MS Dhoni    AB Agarkar    30
## 3  MS Dhoni       A Nehra    29
## 4  MS Dhoni Mohammad Asif    21
## 5  MS Dhoni    JD Unadkat    19
## 6  MS Dhoni      M Morkel    17
## 7  MS Dhoni      UT Yadav    16
## 8  MS Dhoni    GD McGrath    14
## 9  MS Dhoni      V Sehwag    14
## 10 MS Dhoni      S Nadeem    14
## ..      ...           ...   ...
# All the top Deccan Chargers IPL T20 batsmen (rank=0) against Kolkata Knight Riders and performances against Australian bowlers
m <-teamBatsmenVsBowlersAllOppnAllMatchesRept(kkr_Allmatches,"Deccan Chargers",rank=0)
m
## Source: local data frame [29 x 2]
## 
##            batsman runsScored
##             (fctr)      (dbl)
## 1     AC Gilchrist        166
## 2         HH Gibbs        145
## 3        RG Sharma        116
## 4         S Dhawan        111
## 5        A Symonds        100
## 6  Y Venugopal Rao         92
## 7         B Chipli         60
## 8     DB Ravi Teja         54
## 9         TL Suman         53
## 10      VVS Laxman         32
## ..             ...        ...

13. IPL Batsmen vs Bowlers Plot in Twenty20 matches against all other IPL teams

The following functions plot the performances of the IPL batsman based on the rank chosen against all other IPL team’s bowlers. Note: The rank has to be >0

#The following plot displays the performance of the top Royal Challengers Bangalore IPL T20 batsman (rank=1) against all opposition IPL bowlers. This is Virat Kohli for India

d <- teamBatsmenVsBowlersAllOppnAllMatchesRept(rcb_Allmatches,"Royal Challengers Bangalore",rank=1,dispRows=50)
d
## Source: local data frame [50 x 3]
## Groups: batsman [1]
## 
##    batsman          bowler  runs
##     (fctr)          (fctr) (dbl)
## 1  V Kohli        UT Yadav   129
## 2  V Kohli        R Ashwin   115
## 3  V Kohli        A Mishra   106
## 4  V Kohli       IK Pathan    92
## 5  V Kohli        DJ Bravo    79
## 6  V Kohli       RA Jadeja    78
## 7  V Kohli       JA Morkel    73
## 8  V Kohli       PP Chawla    64
## 9  V Kohli       SB Jakati    62
## 10 V Kohli Harbhajan Singh    61
## ..     ...             ...   ...
teamBatsmenVsBowlersAllOppnAllMatchesPlot(d)

batsmenVsBowler1-1

e <- teamBatsmenVsBowlersAllOppnAllMatchesPlot(d,plot=FALSE)
e
## Source: local data frame [50 x 3]
## Groups: batsman [1]
## 
##    batsman          bowler  runs
##     (fctr)          (fctr) (dbl)
## 1  V Kohli        UT Yadav   129
## 2  V Kohli        R Ashwin   115
## 3  V Kohli        A Mishra   106
## 4  V Kohli       IK Pathan    92
## 5  V Kohli        DJ Bravo    79
## 6  V Kohli       RA Jadeja    78
## 7  V Kohli       JA Morkel    73
## 8  V Kohli       PP Chawla    64
## 9  V Kohli       SB Jakati    62
## 10 V Kohli Harbhajan Singh    61
## ..     ...             ...   ...
# The following plot displays the performance of the Chennai Super Kings IPL T20 batsman (rank=2) against all opposition IPL bowlers. This is M S Dhoni for India
d <- teamBatsmenVsBowlersAllOppnAllMatchesRept(csk_Allmatches,"Chennai Super Kings",rank=2,dispRows=50)
teamBatsmenVsBowlersAllOppnAllMatchesPlot(d)

batsmenVsBowler1-2

# Best IPL T20 batsman of Delhi Daredevils against all other IPL  bowlers
d <- teamBatsmenVsBowlersAllOppnAllMatchesRept(dd_Allmatches,"Delhi Daredevils",rank=1,dispRows=30)
d
## Source: local data frame [30 x 3]
## Groups: batsman [1]
## 
##     batsman          bowler  runs
##      (fctr)          (fctr) (dbl)
## 1  V Sehwag        RP Singh    88
## 2  V Sehwag Harbhajan Singh    54
## 3  V Sehwag        MM Patel    52
## 4  V Sehwag       JA Morkel    47
## 5  V Sehwag   R Vinay Kumar    47
## 6  V Sehwag  AD Mascarenhas    47
## 7  V Sehwag         P Kumar    46
## 8  V Sehwag       PP Chawla    45
## 9  V Sehwag        R Sharma    43
## 10 V Sehwag         MS Gony    42
## ..      ...             ...   ...
teamBatsmenVsBowlersAllOppnAllMatchesPlot(d)

batsmenVsBowler1-3

# Best IPL T20 batsman of Deccan Chargers against all other IPL  bowlers
d <- teamBatsmenVsBowlersAllOppnAllMatchesRept(dc_Allmatches,"Deccan Chargers",rank=1,dispRows=30)
d
## Source: local data frame [30 x 3]
## Groups: batsman [1]
## 
##         batsman      bowler  runs
##          (fctr)      (fctr) (dbl)
## 1  AC Gilchrist     A Nehra    67
## 2  AC Gilchrist   DP Nannes    45
## 3  AC Gilchrist S Sreesanth    40
## 4  AC Gilchrist   JH Kallis    39
## 5  AC Gilchrist    MM Patel    39
## 6  AC Gilchrist   JA Morkel    34
## 7  AC Gilchrist   IK Pathan    34
## 8  AC Gilchrist    A Kumble    34
## 9  AC Gilchrist  AB Agarkar    31
## 10 AC Gilchrist    I Sharma    30
## ..          ...         ...   ...
teamBatsmenVsBowlersAllOppnAllMatchesPlot(d)

batsmenVsBowler1-4

14. Team bowling IPL T20 scorecard against all opposing IPL steams

The functions lists the top IPL T20 bowlers of each IPL team. This function returns a dataframe when ‘matches’ is the matches of the IPL and ‘theTeam’ is the same IPL team as in the functions below

teamBowlingScorecardAllOppnAllMatchesMain(matches=kkr_Allmatches,theTeam="Kolkata Knight Riders")
## Source: local data frame [52 x 5]
## 
##             bowler overs maidens  runs wickets
##             (fctr) (int)   (int) (dbl)   (dbl)
## 1        SP Narine    18       0  1289      84
## 2        JH Kallis    20       0  1105      46
## 3  Shakib Al Hasan    18       0   827      43
## 4         R Bhatia    15       0   905      38
## 5         L Balaji    21       0   879      37
## 6    Iqbal Abdulla    20       0   674      32
## 7         AB Dinda    17       0   605      29
## 8        PP Chawla    15       0   572      26
## 9         I Sharma    17       0   862      25
## 10        M Morkel    14       0   573      25
## ..             ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(matches=csk_Allmatches,theTeam="Chennai Super Kings")
## Source: local data frame [44 x 5]
## 
##            bowler overs maidens  runs wickets
##            (fctr) (int)   (int) (dbl)   (dbl)
## 1        R Ashwin    20       0  2127      98
## 2        DJ Bravo    17       0  1542      88
## 3       JA Morkel    20       0  2000      83
## 4       MM Sharma    19       0  1208      60
## 5       RA Jadeja    17       0  1346      58
## 6       SB Jakati    18       0  1154      46
## 7  M Muralitharan    16       0   977      41
## 8    DE Bollinger    13       0   662      41
## 9        L Balaji    21       0   809      35
## 10        A Nehra    12       0   591      33
## ..            ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(dc_Allmatches,"Deccan Chargers")
## Source: local data frame [43 x 5]
## 
##           bowler overs maidens  runs wickets
##           (fctr) (int)   (int) (dbl)   (dbl)
## 1        PP Ojha    18       0  1328      66
## 2       RP Singh    18       0  1229      57
## 3       A Mishra    14       0   735      32
## 4       DW Steyn    13       0   584      32
## 5      A Symonds    18       0   633      22
## 6     WPUJC Vaas     8       0   355      22
## 7      RJ Harris    15       0   463      21
## 8   DT Christian    17       0   583      20
## 9  Harmeet Singh    18       0   419      17
## 10     RG Sharma    13       0   339      15
## ..           ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(dd_Allmatches,"Delhi Daredevils")
## Source: local data frame [61 x 5]
## 
##         bowler overs maidens  runs wickets
##         (fctr) (int)   (int) (dbl)   (dbl)
## 1     A Mishra    20       0  1105      54
## 2     UT Yadav    19       0  1314      53
## 3     M Morkel    19       0  1113      52
## 4      A Nehra    16       0   758      41
## 5    IK Pathan    21       0  1191      34
## 6   PJ Sangwan    19       0   782      34
## 7    DP Nannes    17       0   596      31
## 8     S Nadeem    19       0  1046      30
## 9  MF Maharoof    18       0   507      29
## 10 Imran Tahir    13       0   485      26
## ..         ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(kxip_Allmatches,"Kings XI Punjab")
## Source: local data frame [52 x 5]
## 
##            bowler overs maidens  runs wickets
##            (fctr) (int)   (int) (dbl)   (dbl)
## 1       PP Chawla    15       0  2188      87
## 2       IK Pathan    18       0  1112      56
## 3         P Awana    21       0  1029      43
## 4         P Kumar    19       0  1152      35
## 5        AR Patel    19       0   797      33
## 6  Sandeep Sharma    14       0   704      32
## 7   Azhar Mahmood    18       0   659      30
## 8     S Sreesanth    18       0   750      28
## 9      MG Johnson    19       0   780      26
## 10      RJ Harris    15       0   584      26
## ..            ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(ktk_Allmatches,"Kochi Tuskers Kerala")
## Source: local data frame [13 x 5]
## 
##              bowler overs maidens  runs wickets
##              (fctr) (int)   (int) (dbl)   (dbl)
## 1     R Vinay Kumar    15       0   335      17
## 2          RP Singh    11       0   345      15
## 3         RA Jadeja    12       0   305       9
## 4          BJ Hodge     7       0    77       8
## 5       S Sreesanth     9       1   206       7
## 6          RV Gomez     7       0   124       5
## 7       NLTC Perera    10       0   111       5
## 8    P Parameswaran     9       0   137       4
## 9    M Muralitharan     5       0   141       2
## 10         RR Powar     7       0   112       2
## 11          B Akhil     2       0    22       0
## 12       P Prasanth     1       0    18       0
## 13 Y Gnaneswara Rao     1       0     7       0
teamBowlingScorecardAllOppnAllMatchesMain(mi_Allmatches,"Mumbai Indians")
## Source: local data frame [59 x 5]
## 
##             bowler overs maidens  runs wickets
##             (fctr) (int)   (int) (dbl)   (dbl)
## 1       SL Malinga    21       0  2478     158
## 2  Harbhajan Singh    20       0  2668     118
## 3       KA Pollard    16       0  1614      66
## 4         MM Patel    19       0   862      42
## 5      DS Kulkarni    19       0   825      37
## 6          PP Ojha    16       0   968      32
## 7         DJ Bravo    17       0   719      30
## 8           Z Khan    14       0   630      30
## 9       MG Johnson    11       0   436      22
## 10  MJ McClenaghan    12       0   386      18
## ..             ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(pw_Allmatches,"Pune Warriors")
## Source: local data frame [34 x 5]
## 
##          bowler overs maidens  runs wickets
##          (fctr) (int)   (int) (dbl)   (dbl)
## 1      R Sharma    17       0   854      35
## 2      AB Dinda    17       0   634      28
## 3       B Kumar    20       0   697      24
## 4    WD Parnell    16       1   444      21
## 5     AC Thomas    14       0   406      16
## 6  Yuvraj Singh    10       0   333      15
## 7      MR Marsh    13       0   281      14
## 8    AD Mathews    16       0   407      12
## 9       A Nehra    17       0   402      12
## 10   MN Samuels    14       0   250      10
## ..          ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(rcb_Allmatches,"Royal Challengers Bangalore")
## Source: local data frame [57 x 5]
## 
##           bowler overs maidens  runs wickets
##           (fctr) (int)   (int) (dbl)   (dbl)
## 1  R Vinay Kumar    21       0  1822      83
## 2         Z Khan    15       0  1237      53
## 3       A Kumble    18       0  1040      47
## 4       MA Starc    18       0   693      39
## 5        P Kumar    18       0  1078      37
## 6      YS Chahal    14       0   801      36
## 7       HV Patel    15       0   781      32
## 8       DW Steyn    15       0   654      32
## 9      S Aravind    11       0   548      32
## 10     JH Kallis    16       0  1088      26
## ..           ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(rr_Allmatches,"Rajasthan Royals")
## Source: local data frame [56 x 5]
## 
##           bowler overs maidens  runs wickets
##           (fctr) (int)   (int) (dbl)   (dbl)
## 1     SK Trivedi    19       0  1862      70
## 2      SR Watson    21       0  1633      68
## 3       SK Warne    16       0  1405      60
## 4    JP Faulkner    20       0  1224      49
## 5       MM Patel    20       0   779      39
## 6      KK Cooper    18       0   691      32
## 7        A Singh    14       0   620      31
## 8        SW Tait    19      NA    NA      26
## 9  Sohail Tanvir    12       0   266      24
## 10     YK Pathan    17       0   693      23
## ..           ...   ...     ...   ...     ...
teamBowlingScorecardAllOppnAllMatchesMain(sh_Allmatches,"Sunrisers Hyderabad")
## Source: local data frame [21 x 5]
## 
##          bowler overs maidens  runs wickets
##          (fctr) (int)   (int) (dbl)   (dbl)
## 1       B Kumar    16       0   761      40
## 2     KV Sharma    17       0   905      38
## 3      DW Steyn    17       0   968      33
## 4      A Mishra    16       0   726      29
## 5      I Sharma    18       0   704      20
## 6   NLTC Perera    13       0   453      19
## 7  MC Henriques    15       0   254      15
## 8     DJG Sammy    14       0   321      14
## 9      TA Boult    12       0   236      10
## 10    RS Bopara     7       0   160       8
## ..          ...   ...     ...   ...     ...

15. Team bowling IPL T20 scorecard against all opposing teams (continued)

The function lists the top bowlers of a IPL team (‘matches’) against the opposing teams

# Best Sunrisers Hyderabad bowlers in matches against CSK
teamBowlingScorecardAllOppnAllMatches(sh_Allmatches,'Chennai Super Kings')
## Source: local data frame [14 x 5]
## 
##            bowler overs maidens  runs wickets
##            (fctr) (int)   (int) (dbl)   (dbl)
## 1       KV Sharma    10       1   151       4
## 2         B Kumar     8       0   122       4
## 3        I Sharma     9       0   183       3
## 4        A Mishra     9       0    94       3
## 5     NLTC Perera     1       0    45       3
## 6        TA Boult     5       0    78       2
## 7  A Ashish Reddy     3       0    34       2
## 8       RS Bopara     1       0    29       2
## 9    MC Henriques     4       0    20       2
## 10       DW Steyn     7       0   125       1
## 11      DJG Sammy     4       0    75       0
## 12  Parvez Rasool     1       0    46       0
## 13      IK Pathan     1       0    34       0
## 14        P Kumar     4       0    33       0
# Best Kolkata Knight Riders bowlers in matches against Kings XI Punjab
teamBowlingScorecardAllOppnAllMatches(ktk_Allmatches,'Kings XI Punjab')
## Source: local data frame [7 x 5]
## 
##           bowler overs maidens  runs wickets
##           (fctr) (int)   (int) (dbl)   (dbl)
## 1       RP Singh     4       0    25       4
## 2    S Sreesanth     4       0    38       0
## 3  R Vinay Kumar     3       0    28       0
## 4      RA Jadeja     3       0    27       0
## 5       BJ Hodge     2       0    26       0
## 6 P Parameswaran     2       0    23       0
## 7       RV Gomez     1       0    12       0
# Best Mumbai Indian bowlers in matches against Delhi Daredevils
teamBowlingScorecardAllOppnAllMatches(mi_Allmatches,'Delhi Daredevils')
## Source: local data frame [37 x 5]
## 
##             bowler overs maidens  runs wickets
##             (fctr) (int)   (int) (dbl)   (dbl)
## 1       SL Malinga    14       0   271      21
## 2  Harbhajan Singh    17       1   318      17
## 3       KA Pollard    10       0   185       6
## 4       AG Murtaza     5       0    39       6
## 5      DS Kulkarni     9       0   116       5
## 6          A Nehra     6       0    55       4
## 7          PP Ojha    12       0   112       3
## 8    ST Jayasuriya     7       0    93       3
## 9         DJ Bravo     6       0    66       3
## 10      SM Pollock     4       0    49       3
## ..             ...   ...     ...   ...     ...
# Best Royal Challengers Bangalore bowlers in matches against Pune Warriors
teamBowlingScorecardAllOppnAllMatches(rcb_Allmatches,"Pune Warriors")
## Source: local data frame [16 x 5]
## 
##             bowler overs maidens  runs wickets
##             (fctr) (int)   (int) (dbl)   (dbl)
## 1    R Vinay Kumar    12       0   121      10
## 2           Z Khan     6       0    88       4
## 3         CH Gayle     3       0    18       4
## 4         M Kartik     6       0    54       3
## 5         HV Patel     5       0    65       2
## 6       DL Vettori     5       0    57       2
## 7   M Muralitharan     6       0    48       2
## 8         RP Singh     5       0    47       2
## 9     MC Henriques     4       0    44       2
## 10      JD Unadkat     4       0    37       2
## 11       R Rampaul     4       0    21       2
## 12      KP Appanna     5       0    53       1
## 13       S Aravind     4       0    35       1
## 14 J Syed Mohammad     2       0    26       1
## 15        A Mithun     4       0    26       0
## 16      TM Dilshan     1       0    24       0

16. Team Bowlers versus Batsmen (in T20 against all oppositions)

The functions below give the peformance of IPL bowlers versus opposing IPL batsman. They give the best bowlers and the total runs conceded and against whom were the runs conceded

# Best Chennai Super Kings IPL T20 bowlers overall  against all other IPL (rank=0)
teamBowlersVsBatsmenAllOppnAllMatchesMain(csk_Allmatches,theTeam="Chennai Super Kings",rank=0)
## Source: local data frame [10 x 2]
## 
##            bowler  runs
##            (fctr) (dbl)
## 1        R Ashwin  2063
## 2       JA Morkel  1917
## 3        DJ Bravo  1486
## 4       RA Jadeja  1320
## 5       MM Sharma  1192
## 6       SB Jakati  1134
## 7  M Muralitharan   928
## 8        SK Raina   888
## 9        L Balaji   781
## 10        MS Gony   654
# Top Chennai Super Kings IPL T20 bowler of India and runs conceded against different opposition batsmen 
(rank=1)
## [1] 1
m <-teamBowlersVsBatsmenAllOppnAllMatchesMain(csk_Allmatches,theTeam="Chennai Super Kings",rank=1)
m
## Source: local data frame [148 x 3]
## Groups: bowler [1]
## 
##      bowler      batsman runsConceded
##      (fctr)       (fctr)        (dbl)
## 1  R Ashwin      V Kohli          115
## 2  R Ashwin   GJ Maxwell           72
## 3  R Ashwin   RV Uthappa           68
## 4  R Ashwin    RG Sharma           59
## 5  R Ashwin    SR Watson           59
## 6  R Ashwin  LMP Simmons           58
## 7  R Ashwin     MS Bisla           52
## 8  R Ashwin     CH Gayle           49
## 9  R Ashwin    DA Warner           48
## 10 R Ashwin AC Gilchrist           46
## ..      ...          ...          ...
# Top Kolkata Knight Riders IPL T20 bowler and runs conceded  against different opposing IPL  batsmen (rank=1)
m <-teamBowlersVsBatsmenAllOppnAllMatchesMain(kkr_Allmatches,theTeam="Kolkata Knight Riders",rank=1)
m
## Source: local data frame [132 x 3]
## Groups: bowler [1]
## 
##       bowler    batsman runsConceded
##       (fctr)     (fctr)        (dbl)
## 1  SP Narine  RG Sharma           62
## 2  SP Narine   SK Raina           58
## 3  SP Narine    WP Saha           52
## 4  SP Narine  JP Duminy           50
## 5  SP Narine  DA Warner           44
## 6  SP Narine MEK Hussey           37
## 7  SP Narine  AM Rahane           33
## 8  SP Narine    V Kohli           29
## 9  SP Narine KD Karthik           27
## 10 SP Narine KA Pollard           26
## ..       ...        ...          ...
# Top IPL T20 bowlers versus batsmen of Delhi Daredevils(rank=0)
teamBowlersVsBatsmenAllOppnAllMatchesMain(dd_Allmatches,theTeam="Delhi Daredevils",rank=0)
## Source: local data frame [10 x 2]
## 
##         bowler  runs
##         (fctr) (dbl)
## 1     UT Yadav  1261
## 2    IK Pathan  1156
## 3     M Morkel  1075
## 4     A Mishra  1072
## 5     S Nadeem  1026
## 6   PJ Sangwan   744
## 7      A Nehra   728
## 8    DP Nannes   558
## 9  MF Maharoof   481
## 10 Imran Tahir   461

17. Team bowlers versus batsmen report (in IPL T20 matches against all opposing team)

#The best IPL T20 bowlers of other IPL teams against Chennai Super Kings
teamBowlersVsBatsmenAllOppnAllMatchesRept(matches=csk_Allmatches,theTeam="Chennai Super Kings",rank=0)
## Source: local data frame [10 x 2]
## 
##             bowler  runs
##             (fctr) (dbl)
## 1  Harbhajan Singh   461
## 2    R Vinay Kumar   435
## 3          P Kumar   421
## 4        PP Chawla   410
## 5        IK Pathan   399
## 6       SL Malinga   380
## 7         RP Singh   353
## 8        JH Kallis   348
## 9          PP Ojha   333
## 10       YK Pathan   293
# Best T20 performer against Mumbai Indians is A Mishra
a <- teamBowlersVsBatsmenAllOppnAllMatchesRept(mi_Allmatches,theTeam="Mumbai Indians",rank=1)
a
## Source: local data frame [24 x 3]
## Groups: bowler [1]
## 
##      bowler      batsman runsConceded
##      (fctr)       (fctr)        (dbl)
## 1  A Mishra   KA Pollard           91
## 2  A Mishra    AT Rayudu           71
## 3  A Mishra SR Tendulkar           55
## 4  A Mishra    RG Sharma           51
## 5  A Mishra    SS Tiwary           26
## 6  A Mishra    AM Rahane           23
## 7  A Mishra     DR Smith           16
## 8  A Mishra  LMP Simmons           16
## 9  A Mishra    JP Duminy           13
## 10 A Mishra     DJ Bravo           11
## ..      ...          ...          ...

18. Team bowlers versus batsmen report (in T20s against all opposing teams continued)

#Top Royal Challengers Bangalore T20 Indian bowlers against Rajasthan Royals
teamBowlersVsBatsmenAllOppnAllMatchesRept(matches=rcb_Allmatches,theTeam="Rajasthan Royals",rank=0)
## Source: local data frame [10 x 2]
## 
##           bowler  runs
##           (fctr) (dbl)
## 1  R Vinay Kumar   252
## 2         Z Khan   134
## 3        P Kumar   115
## 4       A Kumble   106
## 5      S Aravind   101
## 6       MA Starc   100
## 7      JH Kallis    96
## 8      YS Chahal    86
## 9       HV Patel    69
## 10      M Kartik    67
#Top Pune Warriors T20 Indian bowlers against Kings XI Punjab
teamBowlersVsBatsmenAllOppnAllMatchesRept(pw_Allmatches,"Kings XI Punjab",rank=0)
## Source: local data frame [10 x 2]
## 
##          bowler  runs
##          (fctr) (dbl)
## 1      R Sharma   128
## 2      AB Dinda    93
## 3       B Kumar    61
## 4    MN Samuels    50
## 5      MR Marsh    48
## 6      JD Ryder    43
## 7       A Nehra    42
## 8    BAW Mendis    38
## 9     LJ Wright    35
## 10 Yuvraj Singh    32

19. Team bowlers versus batsmen report (in T20s against all opposing teams) plot

This function can only be used for rank > 0 (rank=1,2,3..)

# Top IPL T20 bowler against Chennai Super Kings (This is Harbhajan Singh)
df <- teamBowlersVsBatsmenAllOppnAllMatchesRept(csk_Allmatches,theTeam="Chennai Super Kings",rank=1)
teamBowlersVsBatsmenAllOppnAllMatchesPlot(df,"Chennai Super Kings","Chennai Super Kings")

bowlerVsbatsmen1-1

# Top IPL T20 Indian bowler versus Delhi Daredevils (R Vinay Kumar)
df <- teamBowlersVsBatsmenAllOppnAllMatchesRept(dd_Allmatches,theTeam="Delhi Daredevils",rank=1)
teamBowlersVsBatsmenAllOppnAllMatchesPlot(df,"Delhi Daredevils","Delhi Daredevils")

bowlerVsbatsmen1-2

20. Team Bowler Wicket Kind in Twenty20 matches against all opposing IPL teams

# Top opposition IPL T20  bowlers against Chennai Super Kings and the kind of wickets
teamBowlingWicketKindAllOppnAllMatches(csk_Allmatches,t1="Chennai Super Kings",t2="All")

bowlingWicketkind1-1

# Top opposition IPL T20  bowlers against Royal Challengers Bangalore and the kind of 
# wickets. Get the data frame. Do not plot
m <-teamBowlingWicketKindAllOppnAllMatches(rcb_Allmatches,t1="Royal Challengers Bangalore",t2="All",plot=FALSE)
m
## Source: local data frame [34 x 3]
## Groups: bowler [?]
## 
##       bowler wicketKind     m
##       (fctr)      (chr) (int)
## 1   L Balaji     bowled     6
## 2   L Balaji     caught    10
## 3   L Balaji    run out     2
## 4  JA Morkel     bowled     4
## 5  JA Morkel     caught     6
## 6  JA Morkel        lbw     4
## 7    A Nehra     bowled     5
## 8    A Nehra     caught    14
## 9    A Nehra        lbw     1
## 10   A Nehra    run out     1
## ..       ...        ...   ...
# Top opposition IPL T20  bowlers against Delhi Daredevils and the kind of wickets
teamBowlingWicketKindAllOppnAllMatches(dd_Allmatches,t1="Delhi Daredevils",t2="All")

bowlingWicketkind1-2

21. Team Bowler Wicket Runs in IPL Twenty20 matches against all opposing teams

# Opposition T20 bowlers against Chennai Super Kings and runs conceded
teamBowlingWicketRunsAllOppnAllMatches(csk_Allmatches,t1="Chennai Super Kings",t2="All",plot=TRUE)

bowlingWicketRuns1-1

# Opposition T20 bowlers against Mumbai Indians and runs conceded returned as dataframe
m <-teamBowlingWicketRunsAllOppnAllMatches(mi_Allmatches,t1="Mumbai Indians",t2="All",plot=FALSE)
m
## Source: local data frame [10 x 3]
## 
##           bowler runsConceded wickets
##           (fctr)        (dbl)   (dbl)
## 1       DJ Bravo          299      24
## 2      PP Chawla          348      18
## 3        A Nehra          296      16
## 4       DW Steyn          326      16
## 5      IK Pathan          297      16
## 6      MM Sharma          293      15
## 7  R Vinay Kumar          402      15
## 8      SP Narine          193      14
## 9       RP Singh          182      13
## 10      AB Dinda          292      13
# Top T20 Indian bowlers against Kolkata Knight Riders and runs conceded
teamBowlingWicketRunsAllOppnAllMatches(kkr_Allmatches,t1="Kolkata Knight Riders",t2="All",plot=TRUE)

bowlingWicketRuns1-2

22. Team Bowler Wicket Runs in IPL Twenty20 matches against all opposing teams(continued)

#Top opposition IPL T20 bowlers against Sunrisers Hyderabad
teamBowlingWicketRunsAllOppnAllMatches(sh_Allmatches,t1="Sunrisers Hyderabad",t2="All",plot=TRUE)

bowlingWicketRuns2-1

#Top opposition IPL T20 bowlers against Pune Warriorss
teamBowlingWicketRunsAllOppnAllMatches(pw_Allmatches,t1="Pune Warriors",t2="All",plot=TRUE)

bowlingWicketRuns2-2bowlingWicketRuns2-3

#Top opposition IPL T20 bowlers against Kings XI Punjab
teamBowlingWicketRunsAllOppnAllMatches(kxip_Allmatches,t1="Kings XI Punjab",t2="All",plot=TRUE)

Conclusion

This post included all functions for an IPL team in all IPL T20 matches against all opposing IPL teams. As before the data frames for the IPL T20 matches are already available. You can load the data and begin to use them. If more insights from the dataframe are possible do go ahead. But please do attribute the source to Cricheet (http://cricsheet.org), my package yorkr and my blog. Do give the functions a spin for yourself.

The 4th and final part of the IPL yorkr package’s handling of IPL T20 will follow soon.

Watch this space!

Important note: Do check out my other posts using yorkr at yorkr-posts

You may also like

  1. Introducing cricket package yorkr-Part1:Beaten by sheer pace!.
  2. yorkr pads up for the Twenty20s: Part 1- Analyzing team“s match performance
  3. Literacy in India: A deepR dive
  4. Introducing cricketr! : An R package to analyze performances of cricketers
  5. Design principles of scalable distributed systems
  6. OpenCV: Fun with filters and convolution

yorkr crashes the IPL party! – Part 2

Most people say that it is the intellect which makes a great scientist. They are wrong: it is character.

                 Albert Einstein

*Science is organized knowledge. Wisdom is organized life.“*

                 Immanuel Kant

If I have seen further, it is by standing on the shoulders of giants

                 Isaac Newton
                 

Valid criticism does you a favor.

                 Carl Sagan

Introduction

In this post, my R package ‘yorkr’, continues to bat in the IPL Twenty20s. This post is a continuation of my earlier post – yorkr crashes the IPL party ! – Part 1. This post deals with Class 2 functions namely the performances of an IPL team in all T20 matches against another IPL team for e.g all T20 matches of Chennai Super Kings vs Royal Challengers Bangalore or Kochi Tuskers Kerala vs Mumbai Indians etc.

If you are passionate about cricket, and love analyzing cricket performances, then check out my 2 racy books on cricket! In my books, I perform detailed yet compact analysis of performances of both batsmen, bowlers besides evaluating team & match performances in Tests , ODIs, T20s & IPL. You can buy my books on cricket from Amazon at $12.99 for the paperback and $4.99/$6.99 respectively for the kindle versions. The books can be accessed at Cricket analytics with cricketr  and Beaten by sheer pace-Cricket analytics with yorkr  A must read for any cricket lover! Check it out!!

1

 

You can clone/fork the code for my package yorkr from Github at yorkr

This post has also been published at RPubs IPLT20-Part2 and can also be downloaded as a PDF document from IPLT20-Part2.pdf

Checkout my interactive Shiny apps GooglyPlus (plots & tables) and Googly (only plots) which can be used to analyze IPL players, teams and matches.

Important note 1: Do check out all the posts on the python avatar of yorkr, namely ‘yorkpy’ in my post ‘Pitching yorkpy … short of good length to IPL – Part 1

The list of function in Class 2 are

  1. teamBatsmenPartnershiOppnAllMatches()
  2. teamBatsmenPartnershipOppnAllMatchesChart()
  3. teamBatsmenVsBowlersOppnAllMatches()
  4. teamBattingScorecardOppnAllMatches()
  5. teamBowlingPerfOppnAllMatches()
  6. teamBowlersWicketsOppnAllMatches()
  7. teamBowlersVsBatsmenOppnAllMatches()
  8. teamBowlersWicketKindOppnAllMatches()
  9. teamBowlersWicketRunsOppnAllMatches()
  10. plotWinLossBetweenTeams()

1. Install the package from CRAN

library(yorkr)
rm(list=ls())

2. Get data for all T20 matches between 2 teams

We can get all IPL T20 matches between any 2 teams using the function below. The dir parameter should point to the folder which has the IPL T20 RData files of the individual matches. This function creates a data frame of all the IPL T20 matches and also saves the dataframe as RData. The function below gets all matches between India and Australia

setwd("C:/software/cricket-package/york-test/yorkrData/IPL/IPL-T20-matches")
matches <- getAllMatchesBetweenTeams("Sunrisers Hyderabad","Royal Challengers Bangalore",dir=".")
dim(matches)
## [1] 1320   25

I have however already saved the IPL Twenty20 matches for all possible combinations of opposing IPL Teams. The data for these matches for the individual teams/countries can be obtained from Github at in the folder IPL-T20-allmatches-between-two-teams

Note: You will need to use the function below for future matches! The data in Cricsheet are from 2008 -2015

3. Save data for all matches between all combination of 2 teams

This can be done locally using the function below. You could use this function to combine all IPL Twenty20 matches between any 2 IPL teams into a single dataframe and save it in the current folder. The current implementation expects that the the RData files of individual matches are in ../data folder. Since I already have converted this I will not be running this again

# Available in yorkr_0.0.5. Can be installed from Github though!
#saveAllMatchesBetween2IPLTeams()

4. Load data directly for all matches between 2 IPL teams

As in my earlier post I pick all IPL Twenty20 matches between 2 random IPL teams. I load the data directly from the stored RData files. When we load the Rdata file a “matches” object will be created. This object can be stored for the apporpriate teams as below

# Load T20 matches between 2 IPL teams
setwd("C:/software/cricket-package/york-test/yorkrData/IPL/IPL-T20-allmatches-between-two-teams")
load("Chennai Super Kings-Delhi Daredevils-allMatches.RData")
csk_dd_matches <- matches
load("Deccan Chargers-Kolkata Knight Riders-allMatches.RData")
dc_kkr_matches <- matches
load("Mumbai Indians-Pune Warriors-allMatches.RData")
mi_pw_matches <- matches
load("Rajasthan Royals-Sunrisers Hyderabad-allMatches.RData")
rr_sh_matches <- matches
load("Kings XI Punjab-Royal Challengers Bangalore-allMatches.RData")
kxip_rcb_matches <-matches
load("Chennai Super Kings-Kochi Tuskers Kerala-allMatches.RData")
csk_ktk_matches <-matches

5. Team Batsmen partnership in Twenty20 (all matches with opposing IPL team)

This function will create a report of the batting partnerships in the IPL teams for the matches between the teams. The report can be brief or detailed depending on the parameter ‘report’. As can be seen M S Dhoni tops the list for CSK, followed by Raina and then Murali Vijay for matches against Delhi Daredevils. For the Delhi Daredevils it is V Sehawag followed by Gambhir.

m<- teamBatsmenPartnershiOppnAllMatches(csk_dd_matches,'Chennai Super Kings',report="summary")
m
## Source: local data frame [29 x 2]
## 
##         batsman totalRuns
##          (fctr)     (dbl)
## 1      MS Dhoni       364
## 2      SK Raina       335
## 3       M Vijay       290
## 4   S Badrinath       185
## 5     ML Hayden       181
## 6    MEK Hussey       169
## 7  F du Plessis       100
## 8      S Vidyut        94
## 9      DR Smith        81
## 10    JA Morkel        80
## ..          ...       ...
m<- teamBatsmenPartnershiOppnAllMatches(csk_dd_matches,'Delhi Daredevils',report="summary")
m
## Source: local data frame [53 x 2]
## 
##             batsman totalRuns
##              (fctr)     (dbl)
## 1          V Sehwag       233
## 2         G Gambhir       200
## 3         DA Warner       134
## 4    AB de Villiers       133
## 5        KD Karthik       129
## 6  DPMD Jayawardene        89
## 7         JA Morkel        81
## 8        TM Dilshan        79
## 9          S Dhawan        78
## 10          SS Iyer        77
## ..              ...       ...
m <-teamBatsmenPartnershiOppnAllMatches(dc_kkr_matches,'Deccan Chargers',report="summary")
m
## Source: local data frame [29 x 2]
## 
##            batsman totalRuns
##             (fctr)     (dbl)
## 1     AC Gilchrist       166
## 2         HH Gibbs       145
## 3        RG Sharma       116
## 4         S Dhawan       111
## 5        A Symonds       100
## 6  Y Venugopal Rao        92
## 7         B Chipli        60
## 8     DB Ravi Teja        54
## 9         TL Suman        53
## 10      VVS Laxman        32
## ..             ...       ...
m <-teamBatsmenPartnershiOppnAllMatches(mi_pw_matches,'Mumbai Indians',report="detailed")
m[1:30,]
##         batsman   nonStriker partnershipRuns totalRuns
## 1  SR Tendulkar JEC Franklin              24       152
## 2  SR Tendulkar    AT Rayudu              46       152
## 3  SR Tendulkar    RG Sharma               2       152
## 4  SR Tendulkar   KD Karthik              20       152
## 5  SR Tendulkar   RT Ponting              39       152
## 6  SR Tendulkar  AC Blizzard              12       152
## 7  SR Tendulkar  RJ Peterson               9       152
## 8     RG Sharma SR Tendulkar               3       135
## 9     RG Sharma JEC Franklin               0       135
## 10    RG Sharma    AT Rayudu              34       135
## 11    RG Sharma    A Symonds              19       135
## 12    RG Sharma   KD Karthik              19       135
## 13    RG Sharma   KA Pollard              47       135
## 14    RG Sharma     TL Suman               7       135
## 15    RG Sharma   GJ Maxwell               6       135
## 16   KD Karthik SR Tendulkar               8       108
## 17   KD Karthik JEC Franklin              32       108
## 18   KD Karthik    AT Rayudu               3       108
## 19   KD Karthik    RG Sharma              50       108
## 20   KD Karthik   SL Malinga              10       108
## 21   KD Karthik      PP Ojha               0       108
## 22   KD Karthik  RJ Peterson               4       108
## 23   KD Karthik  NLTC Perera               1       108
## 24    AT Rayudu SR Tendulkar              54        92
## 25    AT Rayudu    RG Sharma              37        92
## 26    AT Rayudu   KD Karthik               1        92
## 27 JEC Franklin SR Tendulkar              31        63
## 28 JEC Franklin    RG Sharma               1        63
## 29 JEC Franklin   KD Karthik              15        63
## 30 JEC Franklin     SA Yadav              10        63
m <-teamBatsmenPartnershiOppnAllMatches(rr_sh_matches,'Sunrisers Hyderabad',report="summary")
m
## Source: local data frame [23 x 2]
## 
##         batsman totalRuns
##          (fctr)     (dbl)
## 1      S Dhawan       168
## 2     DJG Sammy        95
## 3    EJG Morgan        90
## 4     DA Warner        83
## 5       NV Ojha        50
## 6      KL Rahul        40
## 7     RS Bopara        40
## 8      DW Steyn        31
## 9      CL White        31
## 10 MC Henriques        29
## ..          ...       ...
m <-teamBatsmenPartnershiOppnAllMatches(kxip_rcb_matches,'Kings XI Punjab',report="summary")
m
## Source: local data frame [47 x 2]
## 
##          batsman totalRuns
##           (fctr)     (dbl)
## 1       SE Marsh       246
## 2      DA Miller       224
## 3      RS Bopara       203
## 4   AC Gilchrist       191
## 5   Yuvraj Singh       126
## 6       MS Bisla       103
## 7  Mandeep Singh       100
## 8      DJ Hussey        99
## 9  Azhar Mahmood        96
## 10 KC Sangakkara        88
## ..           ...       ...
m <-teamBatsmenPartnershiOppnAllMatches(csk_ktk_matches,'Kochi Tuskers Kerala',report="summary")
m
## Source: local data frame [8 x 2]
## 
##            batsman totalRuns
##             (fctr)     (dbl)
## 1      BB McCullum        80
## 2         BJ Hodge        70
## 3         PA Patel        40
## 4        RA Jadeja        35
## 5 Y Gnaneswara Rao        19
## 6 DPMD Jayawardene        16
## 7          OA Shah         3
## 8        KM Jadhav         1

6. Team batsmen partnership in Twenty20 (all matches with opposing IPL team)

This is plotted graphically in the charts below. The partnerships are shown. Note: All functions which create a plot also include a parameter plot=TRUE/FALSE. If you set this as FALSE then a data frame is returned. You can use the dataframe to create an interactive plot for the partnerships (mouse over) using packages like plotly,rcharts, googleVis or ggvis.

teamBatsmenPartnershipOppnAllMatchesChart(csk_dd_matches,'Chennai Super Kings',"Delhi Daredevils")

teamBatsmenPartnership-1

teamBatsmenPartnershipOppnAllMatchesChart(dc_kkr_matches,main="Kolkata Knight Riders",opposition="Deccan Chargers")

teamBatsmenPartnership-2

teamBatsmenPartnershipOppnAllMatchesChart(kxip_rcb_matches,"Royal Challengers Bangalore",opposition="Kings XI Punjab")

teamBatsmenPartnership-3

teamBatsmenPartnershipOppnAllMatchesChart(mi_pw_matches,"Mumbai Indians","Pune Warriors")

teamBatsmenPartnership-4

m <- teamBatsmenPartnershipOppnAllMatchesChart(rr_sh_matches,"Rajasthan Royals","Sunrisers Hyderabad",plot=FALSE)
m[1:30,]
##        batsman  nonStriker runs
## 1    SR Watson   STR Binny   60
## 2    AM Rahane   STR Binny   59
## 3    STR Binny   AM Rahane   45
## 4    SR Watson    R Dravid   42
## 5    AM Rahane   SV Samson   41
## 6     BJ Hodge   SV Samson   36
## 7    CH Morris   STR Binny   34
## 8    AM Rahane   SR Watson   31
## 9     R Dravid   SR Watson   30
## 10   SV Samson   AM Rahane   29
## 11   SR Watson   AM Rahane   27
## 12   SPD Smith    DJ Hooda   25
## 13   SPD Smith JP Faulkner   24
## 14   SPD Smith   STR Binny   20
## 15    R Dravid   AM Rahane   18
## 16    BJ Hodge JP Faulkner   18
## 17 JP Faulkner   SPD Smith   18
## 18   SV Samson     KK Nair   14
## 19 JP Faulkner   STR Binny   14
## 20   SV Samson   STR Binny   13
## 21   SPD Smith   AM Rahane   13
## 22   SR Watson   SPD Smith   12
## 23   STR Binny JP Faulkner   12
## 24   STR Binny   SPD Smith   12
## 25 JP Faulkner   SV Samson   12
## 26     KK Nair   SV Samson   12
## 27 JP Faulkner    BJ Hodge   11
## 28   SPD Smith   SR Watson   10
## 29   STR Binny   SR Watson    9
## 30   SV Samson    BJ Hodge    9

7. Team batsmen versus bowler in Twenty20 (all matches with opposing IPL team)

The plots below provide information on how each of the top batsmen of the IPL teams fared against the opposition bowlers

# Adam Gilchrist was the top performer for Deccan Chargers
teamBatsmenVsBowlersOppnAllMatches(dc_kkr_matches,"Deccan Chargers","Kolkata Knight Riders")

batsmenvsBowler-1

teamBatsmenVsBowlersOppnAllMatches(csk_dd_matches,"Delhi Daredevils","Chennai Super Kings",top=3)

batsmenvsBowler-2

m <- teamBatsmenVsBowlersOppnAllMatches(csk_ktk_matches,"Chennai Super Kings","Kochi Tuskers Kerala",top=10,plot=FALSE)
m
## Source: local data frame [37 x 3]
## Groups: batsman [1]
## 
##     batsman         bowler  runs
##      (fctr)         (fctr) (dbl)
## 1  SK Raina       RP Singh     6
## 2  SK Raina    S Sreesanth    18
## 3  SK Raina M Muralitharan     1
## 4  SK Raina  R Vinay Kumar     4
## 5  SK Raina    NLTC Perera    11
## 6  SK Raina       RR Powar    13
## 7  SK Raina       RV Gomez    16
## 8   WP Saha       RP Singh    15
## 9   WP Saha M Muralitharan    11
## 10  WP Saha       BJ Hodge     1
## ..      ...            ...   ...
teamBatsmenVsBowlersOppnAllMatches(rr_sh_matches,"Sunrisers Hyderabad","Rajasthan Royals")

batsmenvsBowler-3

8. Team batsmen versus bowler in Twenty20(all matches with opposing IPL team)

The following tables gives the overall performances of the IPL team’s batsmen against the opposition.

#Chris Gayle followed by Virat Kohli tops for RCB
a <-teamBattingScorecardOppnAllMatches(kxip_rcb_matches,main="Royal Challengers Bangalore",opposition="Kings XI Punjab")
## Total= 2444
a
## Source: local data frame [55 x 5]
## 
##           batsman ballsPlayed fours sixes  runs
##            (fctr)       (int) (int) (int) (dbl)
## 1        CH Gayle         313    45    41   561
## 2         V Kohli         296    39     8   344
## 3  AB de Villiers         183    23    16   301
## 4       JH Kallis         133    18     7   187
## 5        R Dravid          90    11     1   105
## 6      RV Uthappa          47     7     6    92
## 7       CA Pujara          66    11    NA    70
## 8       MK Pandey          50     5     3    67
## 9    KP Pietersen          43     7     1    66
## 10     MV Boucher          36     4     1    41
## ..            ...         ...   ...   ...   ...
#Tendulkar & Rohit Sharma lead for Mumbai Indians
teamBattingScorecardOppnAllMatches(mi_pw_matches,"Mumbai Indians","Pune Warriors")
## Total= 756
## Source: local data frame [20 x 5]
## 
##            batsman ballsPlayed fours sixes  runs
##             (fctr)       (int) (int) (int) (dbl)
## 1     SR Tendulkar         134    21     1   152
## 2        RG Sharma         121     7     6   135
## 3       KD Karthik         107    10     3   108
## 4        AT Rayudu          93     8     1    92
## 5     JEC Franklin          70     5     2    63
## 6       KA Pollard          43     3     3    55
## 7         TL Suman          16     3     3    36
## 8  Harbhajan Singh          22     3     1    29
## 9       SL Malinga          16     2     1    19
## 10       A Symonds          18     2    NA    19
## 11      RT Ponting          17     2    NA    14
## 12      GJ Maxwell           7     1     1    13
## 13     RJ Peterson          13     1    NA    13
## 14     AC Blizzard           6     1    NA     6
## 15         PP Ojha           2    NA    NA     1
## 16        MM Patel           2    NA    NA     1
## 17         RE Levi           2    NA    NA     0
## 18        SA Yadav           4    NA    NA     0
## 19     NLTC Perera           4    NA    NA     0
## 20        DR Smith           1    NA    NA     0
teamBattingScorecardOppnAllMatches(mi_pw_matches,"Pune Warriors","Mumbai Indians")
## Total= 714
## Source: local data frame [28 x 5]
## 
##         batsman ballsPlayed fours sixes  runs
##          (fctr)       (int) (int) (int) (dbl)
## 1    RV Uthappa         131    13     4   151
## 2     MK Pandey          80     5     4    88
## 3  Yuvraj Singh          62     3     6    77
## 4      M Manhas          36     5    NA    42
## 5     SPD Smith          38     4    NA    41
## 6      MR Marsh          26     2     2    38
## 7      M Kartik          21     2     1    25
## 8      R Sharma          22     2     1    23
## 9      TL Suman          15     5    NA    23
## 10   WD Parnell          24     3    NA    22
## ..          ...         ...   ...   ...   ...
teamBattingScorecardOppnAllMatches(csk_dd_matches,"Delhi Daredevils","Chennai Super Kings")
## Total= 1983
## Source: local data frame [53 x 5]
## 
##             batsman ballsPlayed fours sixes  runs
##              (fctr)       (int) (int) (int) (dbl)
## 1          V Sehwag         147    27     9   233
## 2         G Gambhir         155    23     2   200
## 3         DA Warner         130    11     2   134
## 4    AB de Villiers          80     7     6   133
## 5        KD Karthik          99    15     1   129
## 6  DPMD Jayawardene          77     7     2    89
## 7         JA Morkel          63     8     2    81
## 8        TM Dilshan          65     8     3    79
## 9          S Dhawan          58     8     2    78
## 10          SS Iyer          56    11     1    77
## ..              ...         ...   ...   ...   ...
teamBattingScorecardOppnAllMatches(rr_sh_matches,"Rajasthan Royals","Sunrisers Hyderabad")
## Total= 808
## Source: local data frame [17 x 5]
## 
##          batsman ballsPlayed fours sixes  runs
##           (fctr)       (int) (int) (int) (dbl)
## 1      SR Watson          97    22     4   148
## 2      AM Rahane         145    17     1   148
## 3      SPD Smith          81    11     2   103
## 4      STR Binny          83     6     1    90
## 5      SV Samson          83     3     4    76
## 6    JP Faulkner          41     7     2    59
## 7       BJ Hodge          37     2     5    55
## 8       R Dravid          44     7     1    48
## 9      CH Morris          11     2     3    34
## 10       KK Nair          23     3    NA    17
## 11      R Bhatia          10     1    NA     8
## 12   DS Kulkarni           6     1    NA     7
## 13      DJ Hooda           9    NA    NA     7
## 14      AM Nayar           3     1    NA     4
## 15      PV Tambe           7    NA    NA     3
## 16 KW Richardson           2    NA    NA     1
## 17     DH Yagnik           4    NA    NA     0

9. Team performances of IPL bowlers (all matches with opposing IPL team)

Like the function above the following tables provide the top IPL bowlers of the respective teams in the matches against the opposition.

#Piyush Chawla has the most wickets for KXIP against RCB
teamBowlingPerfOppnAllMatches(kxip_rcb_matches,"Kings XI Punjab","Royal Challengers Bangalore")
## Source: local data frame [38 x 5]
## 
##            bowler overs maidens  runs wickets
##            (fctr) (int)   (int) (dbl)   (dbl)
## 1       PP Chawla    14       0   311      12
## 2       IK Pathan    12       0   159       9
## 3      YA Abdulla     9       1   103       8
## 4       RJ Harris     5       0    87       7
## 5         P Awana    11       0   149       6
## 6     S Sreesanth     6       0   101       5
## 7   Azhar Mahmood     8       0    74       5
## 8  Sandeep Sharma     8       1   101       4
## 9        AR Patel     5       0    94       4
## 10      VRV Singh     6       0    70       4
## ..            ...   ...     ...   ...     ...
#Ashwin is the highest wicket takes for CSK against DD
teamBowlingPerfOppnAllMatches(csk_dd_matches,main="Chennai Super Kings",opposition="Delhi Daredevils")
## Source: local data frame [26 x 5]
## 
##           bowler overs maidens  runs wickets
##           (fctr) (int)   (int) (dbl)   (dbl)
## 1       R Ashwin     9       0   233      17
## 2      JA Morkel    11       0   338      10
## 3       DJ Bravo     5       0   135       8
## 4      SB Jakati     4       0   140       6
## 5       L Balaji    10       0   117       6
## 6      MM Sharma     1       0    99       6
## 7      RA Jadeja     2       0    85       4
## 8      IC Pandey     1       0    80       4
## 9  BW Hilfenhaus     5       0    53       4
## 10       A Nehra     1       0    25       4
## ..           ...   ...     ...   ...     ...
teamBowlingPerfOppnAllMatches(dc_kkr_matches,"Deccan Chargers","Kolkata Knight Riders")
## Source: local data frame [26 x 5]
## 
##            bowler overs maidens  runs wickets
##            (fctr) (int)   (int) (dbl)   (dbl)
## 1        RP Singh    11       0   161       7
## 2         PP Ojha    11       0   196       6
## 3      WPUJC Vaas     4       0    67       5
## 4       A Symonds    12       0   100       4
## 5        DW Steyn     8       0    88       4
## 6        A Mishra     8       0    68       3
## 7  Jaskaran Singh     6       0    53       3
## 8       SB Styris     7       0    79       2
## 9       RJ Harris     4       0    20       2
## 10  Harmeet Singh    10       0    84       1
## ..            ...   ...     ...   ...     ...

10. Team bowler’s wickets in IPL Twenty20 (all matches with opposing IPL team)

This provided a graphical plot of the tables above

# Dirk Nannes and Umesh Yadav top for DD against CSK
teamBowlersWicketsOppnAllMatches(csk_dd_matches,"Delhi Daredevils","Chennai Superkings")

bowlerWicketsOppn-1

# SL Malinga and Munaf Patel lead in MI vs PW clashes
teamBowlersWicketsOppnAllMatches(mi_pw_matches,"Mumbai Indians","Pune Warrors")

bowlerWicketsOppn-2

teamBowlersWicketsOppnAllMatches(dc_kkr_matches,"Kolkata Knight Riders","Deccan Chargers",top=10) 

bowlerWicketsOppn-3

m <-teamBowlersWicketsOppnAllMatches(kxip_rcb_matches,"Royal Challengers Bangalore","Kings XI Punjab",plot=FALSE)
m
## Source: local data frame [20 x 2]
## 
##              bowler wickets
##              (fctr)   (int)
## 1         S Aravind       8
## 2            Z Khan       7
## 3          MA Starc       7
## 4          HV Patel       6
## 5           P Kumar       5
## 6         YS Chahal       5
## 7         JH Kallis       4
## 8     R Vinay Kumar       3
## 9          A Kumble       3
## 10         CH Gayle       3
## 11      AB McDonald       3
## 12         VR Aaron       3
## 13         DW Steyn       2
## 14    CK Langeveldt       2
## 15       DL Vettori       2
## 16         M Kartik       2
## 17 RE van der Merwe       2
## 18        R Rampaul       1
## 19        JA Morkel       1
## 20         AB Dinda       1

11. Team bowler vs batsmen in Twenty20(all matches with opposing IPL team)

These plots show how the IPL bowlers fared against the batsmen. It shows which of the opposing IPL teams batsmen were able to score the most runs

teamBowlersVsBatsmenOppnAllMatches(rr_sh_matches,'Rajasthan Royals',"Sunrisers Hyderabd",top=5)

bowlerVsBatsmen-1

teamBowlersVsBatsmenOppnAllMatches(kxip_rcb_matches,"Kings XI Punjab","Royal Challengers Bangalore",top=3)

bowlerVsBatsmen-2

teamBowlersVsBatsmenOppnAllMatches(dc_kkr_matches,"Deccan Chargers","Kolkata Knight Riders")

bowlerVsBatsmen-3

12. Team bowler’s wicket kind in Twenty20(caught,bowled,etc) (all matches with opposing IPL team)

The charts below show the wicket kind taken by the bowler of the IPL team(caught, bowled, lbw etc)

teamBowlersWicketKindOppnAllMatches(csk_dd_matches,"Delhi Daredevils","Chennai Super Kings",plot=TRUE)

bowlerWickets-1

m <- teamBowlersWicketKindOppnAllMatches(mi_pw_matches,"Pune Warriors","Mumbai Indians",plot=FALSE)
m[1:30,]
##          bowler wicketKind wicketPlayerOut runs
## 1       SB Wagh     caught    JEC Franklin   31
## 2      R Sharma     caught    SR Tendulkar   64
## 3     AC Thomas     caught       AT Rayudu   69
## 4      M Kartik    stumped         RE Levi   70
## 5      AB Dinda     caught       AT Rayudu  150
## 6      AB Dinda     caught       RG Sharma  150
## 7      M Kartik    stumped      KD Karthik   70
## 8    MN Samuels     bowled        SA Yadav   21
## 9      R Sharma     bowled      KA Pollard   64
## 10     AB Dinda     caught    JEC Franklin  150
## 11   WD Parnell     caught      SL Malinga   64
## 12     AB Dinda        lbw Harbhajan Singh  150
## 13 Yuvraj Singh     caught      RT Ponting   61
## 14     AJ Finch     caught    SR Tendulkar   11
## 15     MR Marsh        lbw      KD Karthik   24
## 16    AC Thomas     caught     AC Blizzard   69
## 17 Yuvraj Singh     caught    SR Tendulkar   61
## 18 Yuvraj Singh     caught       AT Rayudu   61
## 19     R Sharma     caught       RG Sharma   64
## 20     R Sharma     caught        TL Suman   64
## 21    JE Taylor     caught       A Symonds   34
## 22    JE Taylor     caught      KA Pollard   34
## 23      B Kumar     caught    JEC Franklin   50
## 24    MJ Clarke    run out       RG Sharma    9
## 25      A Nehra     caught    SR Tendulkar   19
## 26      A Nehra     caught     RJ Peterson   19
## 27      B Kumar     bowled       AT Rayudu   50
## 28      A Nehra    run out     NLTC Perera   19
## 29     AB Dinda     caught Harbhajan Singh  150
## 30   WD Parnell    run out      SL Malinga   64
teamBowlersWicketKindOppnAllMatches(dc_kkr_matches,"Kolkata Knight Riders",'Deccan Chargers',plot=TRUE)

bowlerWickets-2

13. Team bowler’s wicket taken and runs conceded in Twenty20(all matches with opposing IPL team)

teamBowlersWicketRunsOppnAllMatches(csk_ktk_matches,"Kochi Tuskers Kerala","Chennai Super Kings")

wicketRuns-1

m <-teamBowlersWicketRunsOppnAllMatches(mi_pw_matches,"Mumbai Indians","Pune Warriors",plot=FALSE)
m[1:30,]
## Source: local data frame [30 x 5]
## 
##             bowler overs maidens  runs wickets
##             (fctr) (int)   (int) (dbl)   (dbl)
## 1       AG Murtaza     4       0    18       2
## 2       SL Malinga     9       1   143      10
## 3         AN Ahmed     5       0    40       4
## 4         MM Patel     6       1    88       7
## 5       KA Pollard     6       0    99       5
## 6     JEC Franklin     4       0    64       1
## 7  Harbhajan Singh     7       0    85       6
## 8          PP Ojha     8       0    95       4
## 9       MG Johnson     5       0    41       4
## 10        R Dhawan     1       0    27       0
## ..             ...   ...     ...   ...     ...

14. Plot of wins vs losses between teams in IPL T20 confrontations

setwd("C:/software/cricket-package/york-test/yorkrData/IPL/IPL-T20-matches")
plotWinLossBetweenTeams("Chennai Super Kings","Delhi Daredevils")

winsLosses-1

plotWinLossBetweenTeams("Deccan Chargers","Kolkata Knight Riders",".")

winsLosses-2

plotWinLossBetweenTeams('Kings XI Punjab',"Royal Challengers Bangalore",".")

winsLosses-3

plotWinLossBetweenTeams("Mumbai Indians","Pune Warriors",".")

winsLosses-4

plotWinLossBetweenTeams('Rajasthan Royals',"Sunrisers Hyderabad",".")

winsLosses-5

plotWinLossBetweenTeams('Chennai Super Kings',"Mumbai Indians",".")

winsLosses-6

Conclusion

This post included all functions for all IPL Twenty20 matches between any 2 IPL teams. As before the data frames are already available. You can load the data and begin to use them. If more insights from the dataframe are possible do go ahead. But please do attribute the source to Cricheet (http://cricsheet.org), my package yorkr and my blog. Do give the functions a spin for yourself!

Important note: Do check out my other posts using yorkr at yorkr-posts

You may also like

  1. yorkr pads up for the Twenty20s: Part 1- Analyzing team“s match performance
  2. yorkr pads up for the Twenty20s:Part 4- Individual batting and bowling performances
  3. Introducing cricket package yorkr: Part 2-Trapped leg before wicket!
  4. Introducing cricket package yorkr:Part 4-In the block hole!
  5. Introducing cricketr! : An R package to analyze performances of cricketers
  6. Cricket analytics with cricketr
  7. OpenCV: Fun with filters and convolution
  8. To Hadoop, or not to Hadoop
  9. Close encounters with the future
  10. Presentation on ‘Evolution to LTE’