The IPL is the pinnacle of the franchise T20 game. All of the world’s best players (minus the English and the Pakistanis, of course) have consistently graced this competition over the years, as have numerous talents from the Indian domestic scene. I have always been interested in the latter group of players, the cricketers we hear very little of save for the two month IPL window every year. How much do they contribute to their teams, and how do they compare to their international class peers? Similarly, many established stars have been effusive in their praise for the competition and how much they have grown as a result of playing in India. How much of this perceived growth is reflected in their cricket?
Nine seasons of IPL makes for a rather controlled cricketing environment. However, the lack of readily available raw data gets in the way of doing anything interesting. Or at least that was the case until a few days back, when I stumbled upon *http://cricsheet.org/about/*. Cricsheet is a database compiled by Stephen Rushe that stores ball by ball data from every international and every IPL match in the .csv format. I have a few gripes with it - for one, it does not record bowler type - but it is an incredible resource for fans to play around with.
I wrote a couple of small pieces of code in R and Python to make sense of all the IPL data on Cricsheet. My intention here was to examine how individual players have performed in individual seasons and across all seasons. I have put in some sample uses for the code, but the idea is for interested folks to have a look and fiddle around with it.
Download the complete collection of ball by ball IPL data here: *http://cricsheet.org/downloads/*
Then set the filepath variable below and in the Python script a few chunks below to the file path where you have stored these files.
The nice thing about these functions is that they are not locked in to this IPL data. You could very well use the same functions to perform the same analysis on the Test match ball by ball data on Cricsheet.
library(plyr)
##### Change this variable to the folder where you downloaded the ball by ball data from cricsheet
filepath = '/Users/thedajaja/Desktop/IPL data/ipl_csv/';
concat = function(..., sep='')
{
ret = paste(..., sep=sep);
return (ret);
}
This next section will implements functions that will help create files with accumulated data for analysis.
###################### Generate data for an entire season from individual matches ###############################
readData = function(file)
{
# Read in data from ball by ball csv file
raw = read.csv(file, row.names = NULL, skip = 19, header = FALSE, col.names = c("Type", "Innings", "Ball", "Batting team", "On strike", "Non striker", "Bowler", "Runs", "Extras", "Dismissal", "Batsman out"))
# Remove the unnecessary first column
raw = raw[,-1];
names(raw) = c("Innings", "Ball", "Batting team", "On strike", "Non striker", "Bowler", "Runs", "Extras", "Dismissal", "Batsman out");
return (data.frame(raw));
}
getBatsmenAndBowlerLists = function(data)
{
# Get lists of batsmen/bowlers on each team
team1Batsmen = unique(data$`On.strike`[data$Innings == 1]); team2Batsmen = unique(data$`On.strike`[data$Innings == 2]);
team1Bowlers = unique(data$Bowler[data$Innings == 2]); team2Bowlers = unique(data$Bowler[data$Innings == 1]);
return(list(team1Batsmen, team1Bowlers, team2Batsmen, team2Bowlers));
}
getAnalysis = function(data, allBatsmen, allBowlers)
{
# Get batting-bowling figures for each pairing: (BOWLER, BATSMAN, RUNS, BALLS, DOTBALLS, DISMISSALS, FOURS, SIXES, EXTRAS)
playersList = getBatsmenAndBowlerLists(data);
team1Batsmen = playersList[[1]];
team1Bowlers = playersList[[2]];
team2Batsmen = playersList[[3]];
team2Bowlers = playersList[[4]];
firstInnings = expand.grid(team1Batsmen, team2Bowlers);
names(firstInnings) = c("Batsman", "Bowler");
secondInnings = expand.grid(team2Batsmen, team1Bowlers);
names(secondInnings) = c("Batsman", "Bowler");
result = matrix(nrow = (length(firstInnings$Batsman) + length(secondInnings$Batsman)), ncol=9);
resultIndex = 1;
grids = list(firstInnings, secondInnings);
for (grid in grids)
{
# Get number of batsman-bowler pairings
numPairs = length(grid$Batsman);
for (index in 1:numPairs)
{
bowler = grid$Bowler[index]; batsman = grid$Batsman[index];
balls = sum(data$Bowler == bowler & data$`On.strike` == batsman);
if (!is.na(balls))
{
if (balls!=0)
{
# Add stats to the result
runs = sum(data$Runs[data$Bowler == bowler & data$`On.strike` == batsman]);
dotballs = sum(data$Bowler == bowler & data$`On.strike` == batsman & data$Runs == 0 & data$Extras == 0);
# Dismissals include run outs (for now)
dismissals = sum(data$Dismissal[data$Bowler == bowler & data$`On.strike` == batsman] != "");
fours = sum(data$Runs[data$Bowler == bowler & data$`On.strike` == batsman] == 4);
sixes = sum(data$Runs[data$Bowler == bowler & data$`On.strike` == batsman] == 6);
extras = sum(data$Extras[data$Bowler == bowler & data$`On.strike` == batsman]);
result[resultIndex,] = c(bowler, batsman, runs, balls, dotballs, dismissals, fours, sixes, extras);
resultIndex = resultIndex + 1;
}
}
}
}
result = na.omit(result);
stats = data.frame(result);
names(stats) = c("Bowler", "Batsman", "Runs", "Balls", "Dotballs", "Dismissals", "Fours", "Sixes", "Extras");
return (stats);
}
writeAnalysisToCumulativeFile = function(writeFile, analysis, allBatsmen, allBowlers)
{
Bowlers = allBowlers[analysis$Bowler];
Batsmen = allBatsmen[analysis$Batsman];
analysis$Bowler = Bowlers;
analysis$Batsman = Batsmen;
write.table(x = analysis, file = writeFile, append = TRUE, row.names = FALSE, col.names = FALSE, quote=FALSE, sep=",");
}
These functions will read data from the files we created.
###################### RUN THIS SECTION: Coalesce data for entire season(s) ###############################
#' These functions accept an argument called 'analysis' that can really span any length in terms of number of games/seasons.
#' The result is always an amalgamation of the data across the timespan represented by 'analysis'.
readCompiledData= function(file)
{
raw = read.csv(file, row.names = NULL, header = FALSE, col.names=c("Bowler", "Batsman", "Runs", "Balls", "Dotballs", "Dismissals", "Fours", "Sixes", "Extras"));
return(data.frame(raw));
}
getPlayerMatchUps = function(analysis, batsman, bowler)
{
return(analysis[analysis$Bowler == bowler & analysis$Batsman == batsman,]);
}
getBattingBreakdown = function(analysis, batsman)
{
# Accumulate all stats on a given batsman-bowler pairing for the season
batsmanAnalysis = analysis[analysis$Batsman == batsman,];
bowlers = unique(batsmanAnalysis$Bowler);
cumulativeResult = matrix(nrow = (length(bowlers)), ncol=9);
resultIndex = 1;
# Merge stats from different matches for the same batsman-bowler pair
for (bowler in bowlers)
{
totalBreakdown = batsmanAnalysis[batsmanAnalysis$Bowler == bowler,];
cumulativeResult[resultIndex,] = c(bowler, batsman, (colSums(totalBreakdown[,-c(1,2)])));
resultIndex = resultIndex + 1;
}
# Remove null values
cumulativeResult = na.omit(cumulativeResult);
finalAnalysis = data.frame(cumulativeResult);
# Convert data to numeric type for calculations - use face value of factors
finalAnalysis = data.frame(cumulativeResult);
for (index in c(3:9))
{
finalAnalysis[,index] = as.numeric(as.character(finalAnalysis[,index]))
}
names(finalAnalysis) = names(batsmanAnalysis);
# Store dotball percentage and strike rate data
finalAnalysis$DotballPc = round(100 * finalAnalysis$Dotballs/finalAnalysis$Balls, 2);
finalAnalysis$StrikeRate = round(100 * finalAnalysis$Runs/finalAnalysis$Balls, 2);
return (finalAnalysis);
}
getBowlingBreakdown = function(analysis, bowler)
{
# Accumulate all stats on a given batsman-bowler pairing for the season
bowlerAnalysis = analysis[analysis$Bowler == bowler,];
batsmen = unique(bowlerAnalysis$Batsman);
cumulativeResult = matrix(nrow = (length(batsmen)), ncol=9);
resultIndex = 1;
# Merge stats from different matches for the same batsman-bowler pair
for (batsman in batsmen)
{
totalBreakdown = bowlerAnalysis[bowlerAnalysis$Batsman == batsman,];
cumulativeResult[resultIndex,] = c(bowler, batsman, (colSums(totalBreakdown[,-c(1,2)])));
resultIndex = resultIndex + 1;
}
# Remove null values
cumulativeResult = na.omit(cumulativeResult);
finalAnalysis = data.frame(cumulativeResult);
# Convert data to numeric type for calculations - use face value of factors
finalAnalysis = data.frame(cumulativeResult);
for (index in c(3:9))
{
finalAnalysis[,index] = as.numeric(as.character(finalAnalysis[,index]))
}
names(finalAnalysis) = names(bowlerAnalysis);
# Store dotball percentage and strike rate data
finalAnalysis$DotballPc = round(100 * finalAnalysis$Dotballs/finalAnalysis$Balls, 2);
finalAnalysis$StrikeRate = round(100 * finalAnalysis$Runs/finalAnalysis$Balls,2);
return (finalAnalysis);
}
The code below will actually generate nine files - one for each season. Each file contains stats on all the batting and bowling pairings from the corresponding season.
# Get data from IPL ball by ball files. Store a season's worth of data in a file.
# The seasonFileIndicators array is how we parse through all the files to generate season specific files. Plays on a quirk in how they are named.
files = list.files(path=filepath);
seasonFileIndicators = c("33", "39", "41", "50", "54", "59", "7", "8", "9");
for (season in 1:9)
{
startsWith = seasonFileIndicators[season];
numPosition = nchar(startsWith);
seasonFiles = files[substr(files, 1, numPosition) == startsWith];
writeFileSuffix = concat("ipl", season, ".csv");
writeFile = concat(filepath, writeFileSuffix);
for (game in seasonFiles)
{
raw = readData(concat(filepath, game));
allBatsmen = levels(raw$On.strike);
allBowlers = levels(raw$Bowler);
analysis = getAnalysis(raw, allBatsmen, allBowlers);
writeAnalysisToCumulativeFile(writeFile, analysis, allBatsmen, allBowlers);
}
}
The Python script below simply puts together all the text from these nine files into a tenth file, which contains stats on all batting and bowling pairings across all nine seasons.
import os
##### Change this variable to the folder where you downloaded the ball by ball data from cricsheet
filepath = '/Users/thedajaja/Desktop/IPL data/ipl_csv/'
writefile = filepath + 'allipl.csv'
readfiles = ['ipl1.csv', 'ipl2.csv','ipl3.csv', 'ipl4.csv', 'ipl5.csv', 'ipl6.csv', 'ipl7.csv', 'ipl8.csv', 'ipl9.csv']
with open(writefile, "w") as allseasons:
for season in readfiles:
readfile = filepath + season
with open(readfile) as season:
allseasons.writelines([line for line in season.readlines()])
This section then reads the new files we created above.
# Read the IPL files
ipl1 = readCompiledData(file = concat(filepath, "ipl1.csv"));
ipl2 = readCompiledData(file = concat(filepath, "ipl2.csv"));
ipl3 = readCompiledData(file = concat(filepath, "ipl3.csv"));
ipl4 = readCompiledData(file = concat(filepath, "ipl4.csv"));
ipl5 = readCompiledData(file = concat(filepath, "ipl5.csv"));
ipl6 = readCompiledData(file = concat(filepath, "ipl6.csv"));
ipl7 = readCompiledData(file = concat(filepath, "ipl7.csv"));
ipl8 = readCompiledData(file = concat(filepath, "ipl8.csv"));
ipl9 = readCompiledData(file = concat(filepath, "ipl9.csv"));
allipl = readCompiledData(file = concat(filepath, "allipl.csv"));
And now comes the fun bit!
*** If no output shows up here, just copy these chunks of code and run them in your own R environment. ***
First up - Subramaniam Badrinath
As the example illustrates, use the function getBattingBreakdown(analysis, playername) to get a batting breakdown for a player. The analysis argument can be any of the ten compilations we made earlier. To get an analysis across all seasons, use ‘allipl’ as the argument. To get an analysis solely from season 4, use ‘ipl4’ as the argument.
Similarly, use the function getBowlingBreakdown(analysis, playername) to get a bowling breakdown for a player.
These functions return a dataframe with the following statistical attributes: “Bowler”, “Batsman”, “Runs”, “Balls”, “Dotballs”, “Dismissals”, “Fours”, “Sixes”, “Extras”, “Dotballpc” (Dot ball percentage), and “StrikeRate” (Runs per 100 balls scored by the batsman)
To get stats on a matchup between a partciular batsman and a particular bowler, use the function getPlayerMatchUps(analysis, batsman, bowler).
Player names correspond to player names on scorecards in the ESPNCricinfo database. So Suresh Raina is SK Raina, Lasith Malinga is SL Malinga, you get the idea.
##### Subramaniam Badrinath
badri = getBattingBreakdown(allipl, "S Badrinath")
# Bowlers he faced more than 5 balls from and ate up dot balls = all top names there! Left arm seam and leg spin?
badri[badri$Balls > 5 & badri$DotballPc > 40,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 6 PJ Sangwan S Badrinath 24 14 7 0 4 1
## 9 SR Watson S Badrinath 12 7 3 1 3 0
## 10 MM Patel S Badrinath 29 25 13 1 3 1
## 17 PP Chawla S Badrinath 31 29 13 1 4 0
## 19 A Nehra S Badrinath 19 22 9 1 2 0
## 21 DS Kulkarni S Badrinath 32 25 12 1 5 1
## 23 A Kumble S Badrinath 7 10 6 2 1 0
## 29 RP Singh S Badrinath 17 19 8 3 2 0
## 35 SK Warne S Badrinath 14 25 14 1 1 0
## 37 A Mishra S Badrinath 18 22 9 1 1 0
## 47 WPUJC Vaas S Badrinath 4 7 6 0 1 0
## 60 Z Khan S Badrinath 13 22 13 0 1 0
## 70 RJ Harris S Badrinath 10 15 7 0 1 0
## 72 P Kumar S Badrinath 7 14 8 0 1 0
## 91 S Nadeem S Badrinath 18 16 8 0 3 0
## 92 S Aravind S Badrinath 7 12 8 0 1 0
## 97 DT Christian S Badrinath 9 13 6 1 1 0
## 100 M Morkel S Badrinath 6 13 9 0 1 0
## 104 AL Menaria S Badrinath 2 6 4 0 0 0
## 110 DR Smith S Badrinath 6 6 4 0 1 0
## 111 J Syed Mohammad S Badrinath 3 8 4 1 0 0
## Extras DotballPc StrikeRate
## 6 0 50.00 171.43
## 9 1 42.86 171.43
## 10 0 52.00 116.00
## 17 0 44.83 106.90
## 19 1 40.91 86.36
## 21 2 48.00 128.00
## 23 0 60.00 70.00
## 29 0 42.11 89.47
## 35 3 56.00 56.00
## 37 0 40.91 81.82
## 47 0 85.71 57.14
## 60 1 59.09 59.09
## 70 1 46.67 66.67
## 72 3 57.14 50.00
## 91 0 50.00 112.50
## 92 1 66.67 58.33
## 97 1 46.15 69.23
## 100 2 69.23 46.15
## 104 0 66.67 33.33
## 110 0 66.67 100.00
## 111 1 50.00 37.50
# Total number of bowlers he faced more than 5 balls from = 71
length(badri[badri$Balls > 5,]$Bowler)
## [1] 71
Next - Suresh Raina the bowler.
##### Suresh Raina the bowler
raina = getBowlingBreakdown(allipl, "SK Raina") # lefties....
raina[raina$Balls > 5 & raina$DotballPc > 40,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes Extras
## 11 SK Raina DA Warner 33 29 12 1 3 1 0
## 22 SK Raina AM Nayar 10 10 5 1 0 1 0
## 28 SK Raina WA Mota 3 6 4 0 0 0 0
## 33 SK Raina R Dravid 3 6 3 0 0 0 0
## 38 SK Raina M Manhas 9 17 8 0 0 0 0
## 42 SK Raina SS Tiwary 33 29 12 0 2 2 3
## 46 SK Raina AN Ahmed 3 7 3 0 0 0 2
## 53 SK Raina EJG Morgan 3 9 6 1 0 0 0
## 78 SK Raina STR Binny 3 7 4 0 0 0 0
## DotballPc StrikeRate
## 11 41.38 113.79
## 22 50.00 100.00
## 28 66.67 50.00
## 33 50.00 50.00
## 38 47.06 52.94
## 42 41.38 113.79
## 46 42.86 42.86
## 53 66.67 33.33
## 78 57.14 42.86
raina[raina$Balls > 5 & raina$StrikeRate < 120,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 1 SK Raina GC Smith 18 16 4 2 0 1
## 5 SK Raina HH Gibbs 12 12 4 0 1 0
## 9 SK Raina RA Jadeja 13 14 4 0 1 0
## 10 SK Raina YK Pathan 10 10 3 0 1 0
## 11 SK Raina DA Warner 33 29 12 1 3 1
## 16 SK Raina Yuvraj Singh 55 57 20 2 6 0
## 17 SK Raina DPMD Jayawardene 5 6 1 0 0 0
## 20 SK Raina JP Duminy 14 15 2 0 1 0
## 21 SK Raina SR Tendulkar 12 14 4 1 1 0
## 22 SK Raina AM Nayar 10 10 5 1 0 1
## 24 SK Raina BJ Hodge 27 25 8 0 3 0
## 27 SK Raina KC Sangakkara 12 13 4 1 1 0
## 28 SK Raina WA Mota 3 6 4 0 0 0
## 29 SK Raina IK Pathan 6 11 3 0 0 0
## 32 SK Raina MK Pandey 7 7 1 0 0 0
## 33 SK Raina R Dravid 3 6 3 0 0 0
## 38 SK Raina M Manhas 9 17 8 0 0 0
## 41 SK Raina FY Fazal 7 7 0 0 0 0
## 42 SK Raina SS Tiwary 33 29 12 0 2 2
## 46 SK Raina AN Ahmed 3 7 3 0 0 0
## 47 SK Raina A Symonds 5 10 3 0 0 0
## 49 SK Raina AD Mathews 4 6 2 0 0 0
## 51 SK Raina G Gambhir 22 23 8 1 2 0
## 53 SK Raina EJG Morgan 3 9 6 1 0 0
## 57 SK Raina RV Uthappa 10 9 3 0 1 0
## 62 SK Raina Y Venugopal Rao 7 6 1 0 1 0
## 66 SK Raina S Dhawan 21 26 10 2 1 1
## 67 SK Raina PA Patel 7 7 0 0 0 0
## 69 SK Raina JD Ryder 8 11 3 0 0 0
## 71 SK Raina MN Samuels 5 6 1 0 0 0
## 78 SK Raina STR Binny 3 7 4 0 0 0
## 80 SK Raina SA Yadav 9 10 4 0 0 0
## 91 SK Raina Q de Kock 9 13 5 0 0 0
## Extras DotballPc StrikeRate
## 1 0 25.00 112.50
## 5 0 33.33 100.00
## 9 0 28.57 92.86
## 10 1 30.00 100.00
## 11 0 41.38 113.79
## 16 3 35.09 96.49
## 17 0 16.67 83.33
## 20 2 13.33 93.33
## 21 2 28.57 85.71
## 22 0 50.00 100.00
## 24 2 32.00 108.00
## 27 1 30.77 92.31
## 28 0 66.67 50.00
## 29 3 27.27 54.55
## 32 0 14.29 100.00
## 33 0 50.00 50.00
## 38 0 47.06 52.94
## 41 0 0.00 100.00
## 42 3 41.38 113.79
## 46 2 42.86 42.86
## 47 2 30.00 50.00
## 49 0 33.33 66.67
## 51 0 34.78 95.65
## 53 0 66.67 33.33
## 57 0 33.33 111.11
## 62 1 16.67 116.67
## 66 3 38.46 80.77
## 67 0 0.00 100.00
## 69 0 27.27 72.73
## 71 0 16.67 83.33
## 78 0 57.14 42.86
## 80 0 40.00 90.00
## 91 0 38.46 69.23
raina[raina$Balls > 5 & raina$StrikeRate > 160,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes Extras
## 12 SK Raina KD Karthik 31 16 3 0 6 0 1
## 13 SK Raina TL Suman 31 16 3 0 3 1 0
## 43 SK Raina AT Rayudu 14 7 2 1 1 1 0
## 52 SK Raina SE Marsh 44 21 4 0 4 3 0
## 79 SK Raina CJ Anderson 29 15 3 0 2 2 0
## 90 SK Raina RR Pant 35 17 1 0 4 1 1
## DotballPc StrikeRate
## 12 18.75 193.75
## 13 18.75 193.75
## 43 28.57 200.00
## 52 19.05 209.52
## 79 20.00 193.33
## 90 5.88 205.88
raina[raina$Balls > 10,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 1 SK Raina GC Smith 18 16 4 2 0 1
## 5 SK Raina HH Gibbs 12 12 4 0 1 0
## 7 SK Raina RG Sharma 40 28 7 1 1 3
## 9 SK Raina RA Jadeja 13 14 4 0 1 0
## 11 SK Raina DA Warner 33 29 12 1 3 1
## 12 SK Raina KD Karthik 31 16 3 0 6 0
## 13 SK Raina TL Suman 31 16 3 0 3 1
## 16 SK Raina Yuvraj Singh 55 57 20 2 6 0
## 20 SK Raina JP Duminy 14 15 2 0 1 0
## 21 SK Raina SR Tendulkar 12 14 4 1 1 0
## 23 SK Raina BB McCullum 29 19 4 0 2 1
## 24 SK Raina BJ Hodge 27 25 8 0 3 0
## 27 SK Raina KC Sangakkara 12 13 4 1 1 0
## 29 SK Raina IK Pathan 6 11 3 0 0 0
## 34 SK Raina V Kohli 54 45 14 1 3 2
## 38 SK Raina M Manhas 9 17 8 0 0 0
## 40 SK Raina NV Ojha 18 15 4 1 1 1
## 42 SK Raina SS Tiwary 33 29 12 0 2 2
## 51 SK Raina G Gambhir 22 23 8 1 2 0
## 52 SK Raina SE Marsh 44 21 4 0 4 3
## 63 SK Raina CH Gayle 67 43 12 1 3 7
## 66 SK Raina S Dhawan 21 26 10 2 1 1
## 69 SK Raina JD Ryder 8 11 3 0 0 0
## 79 SK Raina CJ Anderson 29 15 3 0 2 2
## 90 SK Raina RR Pant 35 17 1 0 4 1
## 91 SK Raina Q de Kock 9 13 5 0 0 0
## Extras DotballPc StrikeRate
## 1 0 25.00 112.50
## 5 0 33.33 100.00
## 7 0 25.00 142.86
## 9 0 28.57 92.86
## 11 0 41.38 113.79
## 12 1 18.75 193.75
## 13 0 18.75 193.75
## 16 3 35.09 96.49
## 20 2 13.33 93.33
## 21 2 28.57 85.71
## 23 0 21.05 152.63
## 24 2 32.00 108.00
## 27 1 30.77 92.31
## 29 3 27.27 54.55
## 34 1 31.11 120.00
## 38 0 47.06 52.94
## 40 1 26.67 120.00
## 42 3 41.38 113.79
## 51 0 34.78 95.65
## 52 0 19.05 209.52
## 63 8 27.91 155.81
## 66 3 38.46 80.77
## 69 0 27.27 72.73
## 79 0 20.00 193.33
## 90 1 5.88 205.88
## 91 0 38.46 69.23
Shane Watson the all rounder.
#### Shane Watson
watsonbat = getBattingBreakdown(allipl, "SR Watson") # Has Malinga's number!
watsonbowl = getBowlingBreakdown(allipl, "SR Watson") # Good, but fodder for big hitters.
watsonbowl[watsonbowl$StrikeRate > 150 & watsonbowl$Balls > 5,] # Just about every big hitter hammers him
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 27 SR Watson S Badrinath 12 7 3 1 3 0
## 32 SR Watson YV Takawale 29 10 1 0 5 1
## 35 SR Watson DJ Bravo 28 17 5 2 4 1
## 66 SR Watson KA Pollard 75 43 13 1 10 4
## 70 SR Watson BB McCullum 22 14 5 1 3 1
## 80 SR Watson Harbhajan Singh 17 8 2 0 2 1
## 101 SR Watson PA Reddy 12 7 2 0 2 0
## 105 SR Watson DJG Sammy 33 16 3 1 2 3
## 110 SR Watson YK Pathan 39 23 6 1 6 1
## 114 SR Watson DA Warner 34 20 6 2 4 1
## 115 SR Watson BJ Rohrer 12 6 1 0 2 0
## 117 SR Watson DA Miller 16 10 2 1 0 1
## 119 SR Watson AP Tare 19 9 2 0 2 1
## 129 SR Watson AD Russell 31 17 3 1 2 2
## 134 SR Watson CJ Anderson 16 6 1 0 2 1
## 135 SR Watson SN Khan 11 6 0 1 2 0
## 137 SR Watson LMP Simmons 12 7 2 0 1 1
## 140 SR Watson EJG Morgan 29 13 3 1 2 2
## 151 SR Watson R Bhatia 11 7 0 0 1 0
## 153 SR Watson KS Williamson 11 7 2 1 2 0
## 165 SR Watson BCJ Cutting 33 13 4 1 2 4
## Extras DotballPc StrikeRate
## 27 1 42.86 171.43
## 32 1 10.00 290.00
## 35 3 29.41 164.71
## 66 7 30.23 174.42
## 70 1 35.71 157.14
## 80 0 25.00 212.50
## 101 0 28.57 171.43
## 105 3 18.75 206.25
## 110 2 26.09 169.57
## 114 0 30.00 170.00
## 115 0 16.67 200.00
## 117 1 20.00 160.00
## 119 0 22.22 211.11
## 129 0 17.65 182.35
## 134 0 16.67 266.67
## 135 2 0.00 183.33
## 137 1 28.57 171.43
## 140 0 23.08 223.08
## 151 0 0.00 157.14
## 153 0 28.57 157.14
## 165 2 30.77 253.85
watsonbowl [watsonbowl$StrikeRate < 110,] # Indians find him hard to score off?
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 1 SR Watson G Gambhir 60 68 30 3 7 0
## 3 SR Watson S Dhawan 44 45 20 2 5 1
## 4 SR Watson K Goel 5 5 3 0 1 0
## 5 SR Watson JR Hopes 10 11 7 0 2 0
## 7 SR Watson IK Pathan 8 8 4 0 1 0
## 9 SR Watson WA Mota 1 1 0 0 0 0
## 11 SR Watson VVS Laxman 10 15 8 0 2 0
## 12 SR Watson A Symonds 12 16 7 0 2 0
## 14 SR Watson S Chanderpaul 1 7 6 1 0 0
## 15 SR Watson R Dravid 1 5 4 1 0 0
## 18 SR Watson P Kumar 6 9 3 1 1 0
## 19 SR Watson Z Khan 3 5 2 0 0 0
## 20 SR Watson R Vinay Kumar 1 1 0 0 0 0
## 21 SR Watson Salman Butt 13 15 8 0 2 0
## 22 SR Watson SC Ganguly 25 24 10 0 4 0
## 24 SR Watson BJ Hodge 0 1 1 0 0 0
## 25 SR Watson AB Dinda 0 1 1 1 0 0
## 29 SR Watson JA Morkel 19 21 10 1 1 1
## 30 SR Watson MS Gony 0 1 1 0 0 0
## 31 SR Watson M Ntini 0 7 6 0 0 0
## 33 SR Watson ST Jayasuriya 4 10 6 2 0 0
## 36 SR Watson AM Nayar 6 10 4 1 0 0
## 38 SR Watson SB Bangar 0 2 2 1 0 0
## 40 SR Watson Y Venugopal Rao 1 2 1 0 0 0
## 41 SR Watson TM Dilshan 14 14 8 1 3 0
## 43 SR Watson VY Mahesh 0 1 0 0 0 0
## 45 SR Watson LA Pomersbach 1 1 0 0 0 0
## 48 SR Watson LR Shukla 2 2 0 0 0 0
## 50 SR Watson Umar Gul 1 1 0 0 0 0
## 51 SR Watson SR Tendulkar 29 29 12 0 5 0
## 52 SR Watson RR Raje 1 1 0 0 0 0
## 53 SR Watson PA Patel 9 10 4 0 1 0
## 55 SR Watson CK Kapugedera 5 9 3 0 0 0
## 59 SR Watson DR Smith 29 31 15 0 3 1
## 60 SR Watson AA Bilakhia 1 1 0 0 0 0
## 62 SR Watson DPMD Jayawardene 8 16 10 1 1 0
## 63 SR Watson AT Rayudu 40 38 18 4 6 0
## 64 SR Watson SS Tiwary 13 17 9 1 2 0
## 67 SR Watson R Sathish 1 2 1 0 0 0
## 71 SR Watson CA Pujara 4 6 5 0 1 0
## 72 SR Watson MK Tiwary 4 5 4 0 1 0
## 73 SR Watson PC Valthaty 2 3 1 0 0 0
## 74 SR Watson R McLaren 2 2 0 0 0 0
## 76 SR Watson RA Jadeja 17 27 11 3 1 0
## 78 SR Watson M Muralitharan 4 5 1 0 0 0
## 81 SR Watson AG Murtaza 1 1 0 0 0 0
## 82 SR Watson Harpreet Singh 6 10 5 1 0 0
## 84 SR Watson NL McCullum 3 4 1 0 0 0
## 86 SR Watson CH Gayle 19 25 14 2 3 0
## 87 SR Watson V Kohli 19 26 12 1 0 1
## 89 SR Watson Y Nagar 1 3 2 0 0 0
## 90 SR Watson Mandeep Singh 6 11 4 1 0 0
## 91 SR Watson N Saini 0 4 4 0 0 0
## 92 SR Watson RJ Harris 1 3 2 0 0 0
## 94 SR Watson SPD Smith 3 5 0 0 0 0
## 95 SR Watson AD Mathews 13 14 6 1 1 0
## 98 SR Watson CJ Ferguson 1 2 1 0 0 0
## 99 SR Watson M Kartik 2 2 0 0 0 0
## 100 SR Watson R Sharma 0 3 2 1 0 0
## 102 SR Watson AB de Villiers 50 46 16 1 6 0
## 104 SR Watson GH Vihari 4 10 6 0 0 0
## 108 SR Watson MC Henriques 15 15 5 2 0 1
## 109 SR Watson R Rampaul 3 4 2 1 0 0
## 111 SR Watson AJ Finch 5 6 3 0 1 0
## 112 SR Watson MR Marsh 7 9 5 0 1 0
## 113 SR Watson CM Gautam 0 1 1 1 0 0
## 116 SR Watson DJ Hussey 0 2 2 1 0 0
## 118 SR Watson GJ Maxwell 0 2 2 1 0 0
## 120 SR Watson KD Karthik 24 25 8 0 3 0
## 121 SR Watson BB Samantray 9 11 4 0 1 0
## 122 SR Watson NLTC Perera 9 9 4 2 0 1
## 124 SR Watson R Ashwin 3 5 2 1 0 0
## 125 SR Watson S Rana 0 3 2 1 0 0
## 127 SR Watson Shakib Al Hasan 14 13 1 0 0 1
## 130 SR Watson KV Sharma 7 7 3 1 1 0
## 131 SR Watson DW Steyn 1 2 1 0 0 0
## 136 SR Watson D Wiese 2 2 0 0 0 0
## 138 SR Watson UBT Chand 4 5 2 0 0 0
## 139 SR Watson SS Iyer 0 1 1 1 0 0
## 142 SR Watson NV Ojha 2 4 2 0 0 0
## 143 SR Watson P Negi 1 1 0 0 0 0
## 144 SR Watson Azhar Mahmood 4 5 3 0 1 0
## 145 SR Watson UT Yadav 4 5 3 0 1 0
## 146 SR Watson A Ashish Reddy 3 5 2 1 0 0
## 147 SR Watson SV Samson 6 10 5 1 0 0
## 148 SR Watson KK Nair 11 12 6 0 0 1
## 152 SR Watson Ankit Sharma 0 1 1 0 0 0
## 154 SR Watson DJ Hooda 1 2 0 1 0 0
## 156 SR Watson GJ Bailey 0 2 1 1 0 0
## 157 SR Watson HM Amla 2 3 2 1 0 0
## 159 SR Watson F Behardien 2 3 1 0 0 0
## 160 SR Watson Gurkeerat Singh 3 6 3 0 0 0
## 161 SR Watson AR Patel 2 7 3 1 0 0
## 162 SR Watson J Yadav 2 4 2 0 0 0
## 166 SR Watson B Kumar 1 1 0 0 0 0
## Extras DotballPc StrikeRate
## 1 4 44.12 88.24
## 3 1 44.44 97.78
## 4 0 60.00 100.00
## 5 0 63.64 90.91
## 7 0 50.00 100.00
## 9 0 0.00 100.00
## 11 3 53.33 66.67
## 12 3 43.75 75.00
## 14 0 85.71 14.29
## 15 0 80.00 20.00
## 18 3 33.33 66.67
## 19 1 40.00 60.00
## 20 0 0.00 100.00
## 21 1 53.33 86.67
## 22 2 41.67 104.17
## 24 0 100.00 0.00
## 25 0 100.00 0.00
## 29 3 47.62 90.48
## 30 0 100.00 0.00
## 31 1 85.71 0.00
## 33 1 60.00 40.00
## 36 0 40.00 60.00
## 38 0 100.00 0.00
## 40 0 50.00 50.00
## 41 1 57.14 100.00
## 43 1 0.00 0.00
## 45 0 0.00 100.00
## 48 0 0.00 100.00
## 50 0 0.00 100.00
## 51 3 41.38 100.00
## 52 0 0.00 100.00
## 53 1 40.00 90.00
## 55 2 33.33 55.56
## 59 1 48.39 93.55
## 60 0 0.00 100.00
## 62 1 62.50 50.00
## 63 1 47.37 105.26
## 64 2 52.94 76.47
## 67 0 50.00 50.00
## 71 0 83.33 66.67
## 72 0 80.00 80.00
## 73 0 33.33 66.67
## 74 0 0.00 100.00
## 76 5 40.74 62.96
## 78 1 20.00 80.00
## 81 0 0.00 100.00
## 82 0 50.00 60.00
## 84 1 25.00 75.00
## 86 1 56.00 76.00
## 87 2 46.15 73.08
## 89 0 66.67 33.33
## 90 1 36.36 54.55
## 91 0 100.00 0.00
## 92 0 66.67 33.33
## 94 2 0.00 60.00
## 95 1 42.86 92.86
## 98 0 50.00 50.00
## 99 0 0.00 100.00
## 100 1 66.67 0.00
## 102 5 34.78 108.70
## 104 0 60.00 40.00
## 108 1 33.33 100.00
## 109 0 50.00 75.00
## 111 1 50.00 83.33
## 112 0 55.56 77.78
## 113 0 100.00 0.00
## 116 0 100.00 0.00
## 118 0 100.00 0.00
## 120 3 32.00 96.00
## 121 1 36.36 81.82
## 122 2 44.44 100.00
## 124 0 40.00 60.00
## 125 1 66.67 0.00
## 127 4 7.69 107.69
## 130 1 42.86 100.00
## 131 0 50.00 50.00
## 136 0 0.00 100.00
## 138 0 40.00 80.00
## 139 0 100.00 0.00
## 142 0 50.00 50.00
## 143 0 0.00 100.00
## 144 1 60.00 80.00
## 145 1 60.00 80.00
## 146 0 40.00 60.00
## 147 0 50.00 60.00
## 148 2 50.00 91.67
## 152 0 100.00 0.00
## 154 1 0.00 50.00
## 156 1 50.00 0.00
## 157 0 66.67 66.67
## 159 0 33.33 66.67
## 160 0 50.00 50.00
## 161 2 42.86 28.57
## 162 0 50.00 50.00
## 166 0 0.00 100.00
And now, Suresh Raina the batsman.
#### Suresh Raina the batsman
rainabat = getBattingBreakdown(allipl, "SK Raina") # Excellent against ball turning into him and medium pace! Offspin not so much
rainabat[rainabat$StrikeRate < 100 & rainabat$Balls > 5,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 7 A Nehra SK Raina 14 24 15 1 0 1
## 25 RP Singh SK Raina 26 27 10 1 2 1
## 26 SB Styris SK Raina 8 10 2 0 0 0
## 33 A Kumble SK Raina 13 21 5 0 0 0
## 41 KP Pietersen SK Raina 11 17 7 2 0 0
## 50 RG Sharma SK Raina 3 7 3 1 0 0
## 56 RJ Harris SK Raina 2 7 5 1 0 0
## 61 SM Harwood SK Raina 1 6 4 0 0 0
## 63 AB Agarkar SK Raina 10 16 7 0 1 0
## 68 RE van der Merwe SK Raina 6 9 4 1 0 0
## 73 UT Yadav SK Raina 66 68 37 1 11 1
## 77 R McLaren SK Raina 5 7 1 0 0 0
## 95 R Sharma SK Raina 16 18 4 1 0 0
## 98 DT Christian SK Raina 13 14 7 1 2 0
## 100 J Botha SK Raina 19 21 8 0 0 0
## 106 M Muralitharan SK Raina 17 18 8 1 2 0
## 115 GB Hogg SK Raina 8 16 8 1 0 0
## 120 AA Jhunjhunwala SK Raina 5 6 2 0 0 0
## 122 AD Russell SK Raina 11 12 6 2 2 0
## 142 GJ Maxwell SK Raina 4 9 4 1 0 0
## 145 JDS Neesham SK Raina 11 13 5 1 1 0
## 147 PV Tambe SK Raina 4 10 7 0 0 0
## 154 PJ Cummins SK Raina 3 10 6 0 0 0
## 157 NM Coulter-Nile SK Raina 4 7 5 1 0 0
## 160 CH Morris SK Raina 12 18 10 3 1 0
## 162 HV Patel SK Raina 21 29 15 1 3 0
## 166 MC Henriques SK Raina 11 13 3 1 0 0
## 177 R Ashwin SK Raina 12 17 6 0 0 0
## 178 M Ashwin SK Raina 10 12 4 1 0 0
## Extras DotballPc StrikeRate
## 7 1 62.50 58.33
## 25 2 37.04 96.30
## 26 0 20.00 80.00
## 33 4 23.81 61.90
## 41 0 41.18 64.71
## 50 1 42.86 42.86
## 56 0 71.43 28.57
## 61 1 66.67 16.67
## 63 2 43.75 62.50
## 68 0 44.44 66.67
## 73 6 54.41 97.06
## 77 1 14.29 71.43
## 95 0 22.22 88.89
## 98 0 50.00 92.86
## 100 1 38.10 90.48
## 106 0 44.44 94.44
## 115 0 50.00 50.00
## 120 0 33.33 83.33
## 122 1 50.00 91.67
## 142 2 44.44 44.44
## 145 1 38.46 84.62
## 147 0 70.00 40.00
## 154 1 60.00 30.00
## 157 0 71.43 57.14
## 160 1 55.56 66.67
## 162 4 51.72 72.41
## 166 0 23.08 84.62
## 177 2 35.29 70.59
## 178 0 33.33 83.33
rainabat[rainabat$StrikeRate > 140 & rainabat$Balls > 5,] # Piyush Chawla...they probably keep trying him for the googly
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 1 JR Hopes SK Raina 16 7 1 0 0 2
## 2 IK Pathan SK Raina 65 43 19 1 7 4
## 3 K Goel SK Raina 11 7 1 0 0 1
## 4 PP Chawla SK Raina 142 80 24 4 12 9
## 10 DJ Bravo SK Raina 55 33 11 4 3 5
## 12 AM Nayar SK Raina 21 14 3 0 1 1
## 14 P Kumar SK Raina 85 47 11 3 6 5
## 16 B Akhil SK Raina 15 10 3 0 1 1
## 19 Sohail Tanvir SK Raina 24 14 6 0 3 1
## 20 MM Patel SK Raina 63 37 9 2 7 2
## 21 SK Trivedi SK Raina 92 56 6 1 10 1
## 24 DP Vijaykumar SK Raina 21 11 3 0 3 1
## 29 PP Ojha SK Raina 68 45 6 2 1 4
## 31 VRV Singh SK Raina 28 18 5 0 1 3
## 34 R Vinay Kumar SK Raina 98 62 21 1 9 6
## 38 SR Watson SK Raina 53 37 11 2 7 1
## 40 Z Khan SK Raina 61 37 11 2 7 3
## 45 DL Vettori SK Raina 29 18 5 0 4 1
## 48 DR Smith SK Raina 45 16 2 0 5 3
## 51 AD Mascarenhas SK Raina 12 7 4 0 1 1
## 52 Kamran Khan SK Raina 20 8 0 0 1 2
## 58 TL Suman SK Raina 21 7 0 0 1 2
## 59 YA Abdulla SK Raina 11 6 1 0 2 0
## 60 A Singh SK Raina 27 15 5 2 3 1
## 62 AB Dinda SK Raina 56 36 9 1 8 1
## 66 BAW Mendis SK Raina 21 8 0 0 1 2
## 70 I Sharma SK Raina 63 36 6 1 7 2
## 71 AD Mathews SK Raina 32 18 4 0 4 1
## 75 J Theron SK Raina 10 6 2 2 0 1
## 84 Iqbal Abdulla SK Raina 55 30 7 0 4 4
## 86 KA Pollard SK Raina 73 48 6 1 6 3
## 90 R Ninan SK Raina 20 10 2 1 2 1
## 91 NLTC Perera SK Raina 42 28 6 2 4 1
## 92 RV Gomez SK Raina 16 7 2 0 2 1
## 94 JE Taylor SK Raina 14 7 4 0 0 2
## 108 A Mithun SK Raina 17 12 5 0 0 2
## 112 MS Gony SK Raina 20 8 1 0 1 2
## 114 KK Cooper SK Raina 19 13 5 2 2 1
## 116 P Awana SK Raina 51 24 5 1 7 2
## 117 Azhar Mahmood SK Raina 22 14 6 1 1 2
## 118 SP Narine SK Raina 65 43 13 1 3 4
## 119 V Pratap Singh SK Raina 17 7 2 0 1 2
## 121 M Morkel SK Raina 32 21 5 0 2 2
## 123 P Negi SK Raina 16 10 3 1 1 1
## 129 S Nadeem SK Raina 16 10 2 0 0 1
## 135 DJG Sammy SK Raina 20 11 1 0 3 0
## 137 KW Richardson SK Raina 24 16 2 0 2 1
## 139 R Sathish SK Raina 16 6 0 0 3 0
## 140 AR Patel SK Raina 32 21 2 0 4 0
## 148 WD Parnell SK Raina 17 6 0 0 2 1
## 149 Sandeep Sharma SK Raina 55 27 9 0 4 4
## 153 S Rana SK Raina 13 9 3 0 2 0
## 172 Gurkeerat Singh SK Raina 17 11 3 0 2 0
## 173 MJ McClenaghan SK Raina 34 18 7 1 6 1
## 174 HH Pandya SK Raina 20 11 2 0 2 1
## 175 MM Sharma SK Raina 13 8 3 1 1 1
## 180 KH Pandya SK Raina 16 8 1 0 3 0
## 181 BB Sran SK Raina 19 13 2 0 2 0
## 182 Mustafizur Rahman SK Raina 9 6 0 0 1 0
## 186 AS Rajpoot SK Raina 17 12 2 0 3 0
## 187 JO Holder SK Raina 10 6 2 0 2 0
## Extras DotballPc StrikeRate
## 1 0 14.29 228.57
## 2 2 44.19 151.16
## 3 0 14.29 157.14
## 4 1 30.00 177.50
## 10 2 33.33 166.67
## 12 0 21.43 150.00
## 14 1 23.40 180.85
## 16 0 30.00 150.00
## 19 0 42.86 171.43
## 20 0 24.32 170.27
## 21 4 10.71 164.29
## 24 1 27.27 190.91
## 29 2 13.33 151.11
## 31 4 27.78 155.56
## 34 4 33.87 158.06
## 38 1 29.73 143.24
## 40 3 29.73 164.86
## 45 1 27.78 161.11
## 48 0 12.50 281.25
## 51 0 57.14 171.43
## 52 2 0.00 250.00
## 58 0 0.00 300.00
## 59 0 16.67 183.33
## 60 0 33.33 180.00
## 62 3 25.00 155.56
## 66 0 0.00 262.50
## 70 3 16.67 175.00
## 71 0 22.22 177.78
## 75 0 33.33 166.67
## 84 1 23.33 183.33
## 86 7 12.50 152.08
## 90 0 20.00 200.00
## 91 3 21.43 150.00
## 92 0 28.57 228.57
## 94 0 57.14 200.00
## 108 2 41.67 141.67
## 112 0 12.50 250.00
## 114 0 38.46 146.15
## 116 3 20.83 212.50
## 117 0 42.86 157.14
## 118 0 30.23 151.16
## 119 1 28.57 242.86
## 121 1 23.81 152.38
## 123 0 30.00 160.00
## 129 0 20.00 160.00
## 135 2 9.09 181.82
## 137 2 12.50 150.00
## 139 0 0.00 266.67
## 140 0 9.52 152.38
## 148 0 0.00 283.33
## 149 0 33.33 203.70
## 153 0 33.33 144.44
## 172 0 27.27 154.55
## 173 0 38.89 188.89
## 174 1 18.18 181.82
## 175 0 37.50 162.50
## 180 0 12.50 200.00
## 181 0 15.38 146.15
## 182 0 0.00 150.00
## 186 7 16.67 141.67
## 187 0 33.33 166.67
# Season 1
raina1 = getBattingBreakdown(ipl1, "SK Raina")
One player who really has used the IPL platform to bloom is David Warner. It is tracking his progress through the seasons.
#### David Warner
warner = getBattingBreakdown(allipl, "DA Warner")
# Track his growth across seasons
# Season 2
warner2 = getBattingBreakdown(ipl2, "DA Warner") # Signs of tough times against every spinner on the list
# Season 4
warner4 = getBattingBreakdown(ipl4, "DA Warner") # Good vs leg spin, not so against off spin?
# Season 6
warner6 = getBattingBreakdown(ipl6, "DA Warner") # Didn't play too much it looks like - about the same
# Season 8
warner8 = getBattingBreakdown(ipl8, "DA Warner") # Off spin vs ball coming in to him, noticeable difference
# Who did he find difficult to score off in season 8?
warner8[warner8$StrikeRate < 120,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 4 R Ashwin DA Warner 9 12 3 0 0 0
## 5 DJ Bravo DA Warner 12 12 3 0 0 0
## 9 AN Ahmed DA Warner 8 7 4 0 0 1
## 10 DJG Sammy DA Warner 2 2 0 0 0 0
## 13 CH Morris DA Warner 19 17 10 0 4 0
## 15 DS Kulkarni DA Warner 2 5 3 0 0 0
## 16 NM Coulter-Nile DA Warner 13 13 7 1 0 1
## 17 JP Duminy DA Warner 2 6 2 1 0 0
## 27 Sandeep Sharma DA Warner 26 24 15 0 5 0
## 30 M Vijay DA Warner 6 8 3 0 0 0
## 33 SK Raina DA Warner 1 3 2 1 0 0
## 36 Z Khan DA Warner 4 6 3 0 0 0
## 39 GJ Maxwell DA Warner 3 7 3 0 0 0
## 42 AB Dinda DA Warner 7 7 1 0 0 0
## 43 MJ McClenaghan DA Warner 0 1 1 1 0 0
## Extras DotballPc StrikeRate
## 4 1 25.00 75.00
## 5 1 25.00 100.00
## 9 0 57.14 114.29
## 10 0 0.00 100.00
## 13 5 58.82 111.76
## 15 0 60.00 40.00
## 16 0 53.85 100.00
## 17 3 33.33 33.33
## 27 0 62.50 108.33
## 30 0 37.50 75.00
## 33 0 66.67 33.33
## 36 1 50.00 66.67
## 39 1 42.86 42.86
## 42 1 14.29 100.00
## 43 0 100.00 0.00
# Who did he score off easily in season 8?
warner8[warner8$StrikeRate > 160,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 1 A Nehra DA Warner 25 14 2 0 4 0
## 2 MM Sharma DA Warner 39 15 2 0 5 2
## 3 IC Pandey DA Warner 18 11 4 1 1 2
## 6 SA Abbott DA Warner 7 3 0 0 1 0
## 7 HV Patel DA Warner 24 9 2 0 4 1
## 8 VR Aaron DA Warner 15 7 3 0 2 1
## 11 YS Chahal DA Warner 22 10 2 1 1 2
## 14 DJ Hooda DA Warner 8 4 2 0 2 0
## 18 DJ Muthuswami DA Warner 20 8 2 0 4 0
## 20 M Morkel DA Warner 15 8 2 1 3 0
## 21 SP Narine DA Warner 26 16 6 0 1 2
## 22 YK Pathan DA Warner 14 7 1 0 1 1
## 24 PP Chawla DA Warner 5 2 0 0 1 0
## 28 MG Johnson DA Warner 24 7 0 0 4 1
## 29 Anureet Singh DA Warner 24 14 6 0 4 1
## 32 RG More DA Warner 10 4 0 0 2 0
## 34 SR Watson DA Warner 8 3 1 1 2 0
## 38 Gurkeerat Singh DA Warner 19 10 3 0 2 1
## 41 D Wiese DA Warner 11 6 1 0 2 0
## Extras DotballPc StrikeRate
## 1 0 14.29 178.57
## 2 1 13.33 260.00
## 3 5 36.36 163.64
## 6 0 0.00 233.33
## 7 1 22.22 266.67
## 8 0 42.86 214.29
## 11 0 20.00 220.00
## 14 0 50.00 200.00
## 18 0 25.00 250.00
## 20 0 25.00 187.50
## 21 1 37.50 162.50
## 22 0 14.29 200.00
## 24 0 0.00 250.00
## 28 0 0.00 342.86
## 29 1 42.86 171.43
## 32 0 0.00 250.00
## 34 0 33.33 266.67
## 38 0 30.00 190.00
## 41 0 16.67 183.33
Dale Steyn has some interesting numbers. Always thought he performed poorly in the IPL, but he actually has a really good record.
#### Dale Steyn
steyn = getBowlingBreakdown(allipl, "DW Steyn") # Does really well against most Indian batsmen. And against Hayden, Sehwag, Jayawardene, Hussey, Maxwell...
steyn[steyn$StrikeRate > 150 & steyn$Balls > 5,] # A couple of batsmen play him really well though. Dhoni and Abdv basically. And Piyush Chawla....
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 3 DW Steyn MS Dhoni 103 58 19 2 9 6
## 12 DW Steyn SE Marsh 44 26 6 0 7 1
## 18 DW Steyn BJ Hodge 45 24 5 1 9 0
## 28 DW Steyn AB de Villiers 55 23 5 2 3 5
## 41 DW Steyn A Flintoff 14 8 1 0 1 1
## 44 DW Steyn MK Tiwary 36 22 6 1 5 1
## 52 DW Steyn YK Pathan 82 49 14 2 10 3
## 57 DW Steyn GJ Bailey 27 15 5 0 2 2
## 76 DW Steyn JP Duminy 24 15 5 1 3 1
## 107 DW Steyn PP Chawla 18 10 1 1 3 0
## 161 DW Steyn M Vohra 20 8 2 0 0 2
## Extras DotballPc StrikeRate
## 3 2 32.76 177.59
## 12 7 23.08 169.23
## 18 4 20.83 187.50
## 28 1 21.74 239.13
## 41 1 12.50 175.00
## 44 0 27.27 163.64
## 52 3 28.57 167.35
## 57 0 33.33 180.00
## 76 0 33.33 160.00
## 107 0 10.00 180.00
## 161 0 25.00 250.00
steyn[steyn$StrikeRate < 100,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 2 DW Steyn ML Hayden 15 31 14 0 1 0
## 5 DW Steyn V Sehwag 33 37 17 2 5 0
## 6 DW Steyn Shoaib Malik 0 1 1 1 0 0
## 7 DW Steyn KD Karthik 14 16 6 3 0 1
## 8 DW Steyn AC Gilchrist 50 56 23 1 5 1
## 9 DW Steyn HH Gibbs 24 25 13 1 4 0
## 10 DW Steyn AS Yadav 0 3 3 2 0 0
## 11 DW Steyn RP Singh 1 4 3 2 0 0
## 15 DW Steyn DPMD Jayawardene 24 35 23 0 3 1
## 16 DW Steyn IK Pathan 8 16 9 2 1 0
## 17 DW Steyn A Chopra 1 4 3 1 0 0
## 19 DW Steyn SC Ganguly 36 38 19 0 5 1
## 20 DW Steyn T Taibu 0 1 1 1 0 0
## 24 DW Steyn ST Jayasuriya 1 16 11 2 0 0
## 27 DW Steyn LA Pomersbach 5 9 4 0 0 0
## 29 DW Steyn S Dhawan 10 12 5 1 1 0
## 32 DW Steyn JA Morkel 9 13 6 2 1 0
## 33 DW Steyn S Vidyut 0 3 3 1 0 0
## 34 DW Steyn L Balaji 0 3 2 1 0 0
## 35 DW Steyn M Ntini 0 3 3 0 0 0
## 36 DW Steyn VVS Laxman 8 11 6 0 1 0
## 37 DW Steyn RG Sharma 37 47 21 1 4 0
## 39 DW Steyn NK Patel 2 12 7 0 0 0
## 40 DW Steyn T Henderson 0 2 2 0 0 0
## 42 DW Steyn Y Venugopal Rao 2 5 3 0 0 0
## 47 DW Steyn MS Bisla 36 45 24 0 6 0
## 48 DW Steyn Yuvraj Singh 20 23 6 1 1 0
## 49 DW Steyn NV Ojha 14 19 10 0 1 0
## 50 DW Steyn MJ Lumb 2 7 4 0 0 0
## 51 DW Steyn DR Martyn 2 3 1 0 0 0
## 53 DW Steyn AP Tare 8 11 5 1 1 0
## 54 DW Steyn R Sathish 2 6 4 1 0 0
## 55 DW Steyn KA Pollard 38 45 20 1 2 1
## 63 DW Steyn M Vijay 22 29 16 0 2 0
## 68 DW Steyn AB Agarkar 1 2 1 0 0 0
## 69 DW Steyn MD Mishra 2 6 3 0 0 0
## 70 DW Steyn SR Watson 9 18 12 0 1 0
## 71 DW Steyn AA Jhunjhunwala 0 1 1 0 0 0
## 72 DW Steyn AC Voges 5 7 5 0 1 0
## 73 DW Steyn AS Raut 2 4 2 0 0 0
## 74 DW Steyn R McLaren 4 8 4 0 0 0
## 77 DW Steyn AM Nayar 9 10 4 1 1 0
## 79 DW Steyn Anirudh Singh 9 14 9 0 2 0
## 80 DW Steyn DR Smith 27 36 24 0 5 0
## 81 DW Steyn AG Paunikar 8 9 6 1 2 0
## 83 DW Steyn J Botha 13 16 9 1 2 0
## 86 DW Steyn MA Agarwal 16 17 9 1 2 0
## 87 DW Steyn TM Dilshan 13 24 16 1 1 0
## 88 DW Steyn Z Khan 0 7 7 2 0 0
## 89 DW Steyn JJ van der Wath 0 1 1 1 0 0
## 90 DW Steyn R Ninan 2 4 1 0 0 0
## 91 DW Steyn DL Vettori 1 3 1 0 0 0
## 92 DW Steyn PC Valthaty 15 18 12 1 3 0
## 94 DW Steyn DJ Jacobs 0 2 2 0 0 0
## 102 DW Steyn MK Pandey 21 24 11 0 3 0
## 105 DW Steyn WD Parnell 1 2 0 0 0 0
## 106 DW Steyn P Kumar 1 9 7 1 0 0
## 109 DW Steyn DJ Bravo 4 7 3 0 0 0
## 110 DW Steyn RE Levi 1 8 7 2 0 0
## 111 DW Steyn JEC Franklin 3 10 5 0 0 0
## 112 DW Steyn KP Pietersen 15 18 9 1 2 0
## 113 DW Steyn AM Rahane 18 32 21 2 2 0
## 114 DW Steyn AL Menaria 2 5 3 0 0 0
## 116 DW Steyn DB Das 1 2 1 0 0 0
## 119 DW Steyn N Saini 1 5 3 0 0 0
## 120 DW Steyn Mandeep Singh 2 5 3 1 0 0
## 122 DW Steyn DJ Hussey 12 13 7 0 2 0
## 123 DW Steyn SD Chitnis 0 1 1 1 0 0
## 125 DW Steyn OA Shah 6 7 2 0 0 0
## 127 DW Steyn AD Mathews 3 5 2 0 0 0
## 128 DW Steyn B Kumar 0 1 1 1 0 0
## 129 DW Steyn R Sharma 0 1 1 1 0 0
## 130 DW Steyn AB Dinda 0 2 2 1 0 0
## 132 DW Steyn S Nadeem 0 1 1 1 0 0
## 133 DW Steyn UT Yadav 3 9 6 0 0 0
## 134 DW Steyn AD Mascarenhas 1 2 1 0 0 0
## 135 DW Steyn MEK Hussey 8 13 7 0 1 0
## 136 DW Steyn CH Morris 0 1 1 0 0 0
## 140 DW Steyn Harmeet Singh 3 4 2 0 0 0
## 142 DW Steyn PV Tambe 4 8 3 0 0 0
## 143 DW Steyn SK Trivedi 0 1 1 0 0 0
## 144 DW Steyn RN ten Doeschate 3 7 3 0 0 0
## 145 DW Steyn P Dogra 0 1 1 1 0 0
## 147 DW Steyn SV Samson 15 17 10 1 1 1
## 148 DW Steyn JP Faulkner 7 8 4 0 1 0
## 149 DW Steyn R Bhatia 5 6 3 1 1 0
## 150 DW Steyn GJ Maxwell 7 8 3 0 1 0
## 151 DW Steyn MG Johnson 0 3 1 0 0 0
## 154 DW Steyn CJ Anderson 0 4 4 1 0 0
## 155 DW Steyn MA Starc 3 5 2 0 0 0
## 158 DW Steyn R Shukla 2 3 1 0 0 0
## 162 DW Steyn DA Miller 3 5 3 0 0 0
## Extras DotballPc StrikeRate
## 2 8 45.16 48.39
## 5 3 45.95 89.19
## 6 0 100.00 0.00
## 7 1 37.50 87.50
## 8 7 41.07 89.29
## 9 1 52.00 96.00
## 10 0 100.00 0.00
## 11 0 75.00 25.00
## 15 2 65.71 68.57
## 16 2 56.25 50.00
## 17 0 75.00 25.00
## 19 4 50.00 94.74
## 20 0 100.00 0.00
## 24 4 68.75 6.25
## 27 1 44.44 55.56
## 29 1 41.67 83.33
## 32 2 46.15 69.23
## 33 0 100.00 0.00
## 34 1 66.67 0.00
## 35 0 100.00 0.00
## 36 0 54.55 72.73
## 37 3 44.68 78.72
## 39 3 58.33 16.67
## 40 0 100.00 0.00
## 42 0 60.00 40.00
## 47 9 53.33 80.00
## 48 4 26.09 86.96
## 49 2 52.63 73.68
## 50 1 57.14 28.57
## 51 0 33.33 66.67
## 53 2 45.45 72.73
## 54 0 66.67 33.33
## 55 3 44.44 84.44
## 63 1 55.17 75.86
## 68 0 50.00 50.00
## 69 1 50.00 33.33
## 70 0 66.67 50.00
## 71 0 100.00 0.00
## 72 0 71.43 71.43
## 73 0 50.00 50.00
## 74 0 50.00 50.00
## 77 0 40.00 90.00
## 79 2 64.29 64.29
## 80 1 66.67 75.00
## 81 1 66.67 88.89
## 83 0 56.25 81.25
## 86 1 52.94 94.12
## 87 5 66.67 54.17
## 88 0 100.00 0.00
## 89 0 100.00 0.00
## 90 1 25.00 50.00
## 91 1 33.33 33.33
## 92 1 66.67 83.33
## 94 0 100.00 0.00
## 102 1 45.83 87.50
## 105 1 0.00 50.00
## 106 1 77.78 11.11
## 109 1 42.86 57.14
## 110 0 87.50 12.50
## 111 2 50.00 30.00
## 112 0 50.00 83.33
## 113 0 65.62 56.25
## 114 0 60.00 40.00
## 116 0 50.00 50.00
## 119 1 60.00 20.00
## 120 0 60.00 40.00
## 122 0 53.85 92.31
## 123 0 100.00 0.00
## 125 1 28.57 85.71
## 127 0 40.00 60.00
## 128 0 100.00 0.00
## 129 0 100.00 0.00
## 130 0 100.00 0.00
## 132 0 100.00 0.00
## 133 1 66.67 33.33
## 134 0 50.00 50.00
## 135 1 53.85 61.54
## 136 0 100.00 0.00
## 140 0 50.00 75.00
## 142 1 37.50 50.00
## 143 0 100.00 0.00
## 144 4 42.86 42.86
## 145 0 100.00 0.00
## 147 0 58.82 88.24
## 148 0 50.00 87.50
## 149 1 50.00 83.33
## 150 1 37.50 87.50
## 151 2 33.33 0.00
## 154 0 100.00 0.00
## 155 0 40.00 60.00
## 158 0 33.33 66.67
## 162 0 60.00 60.00
Interesting numbers from one the unsung Royals heroes of the first season, Siddharth Trivedi.
#### Siddharth Trivedi
trivedi = getBowlingBreakdown(allipl, "SK Trivedi")
trivedi[trivedi$StrikeRate < 100,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 1 SK Trivedi G Gambhir 33 35 9 2 3 0
## 6 SK Trivedi IK Pathan 13 21 10 1 0 0
## 7 SK Trivedi B Lee 0 2 2 1 0 0
## 8 SK Trivedi PP Chawla 9 10 3 1 0 0
## 16 SK Trivedi P Kumar 5 7 5 0 1 0
## 19 SK Trivedi BJ Hodge 9 11 5 0 1 0
## 21 SK Trivedi DB Das 4 5 1 0 0 0
## 22 SK Trivedi WP Saha 1 2 1 1 0 0
## 26 SK Trivedi JA Morkel 2 5 3 0 0 0
## 31 SK Trivedi SB Styris 1 2 1 0 0 0
## 34 SK Trivedi DB Ravi Teja 6 9 4 0 0 0
## 38 SK Trivedi A Mishra 14 17 7 1 1 0
## 39 SK Trivedi MF Maharoof 7 8 4 0 1 0
## 42 SK Trivedi DT Patil 3 5 2 0 0 0
## 43 SK Trivedi LR Shukla 7 12 10 1 0 1
## 54 SK Trivedi S Sreesanth 4 6 5 0 1 0
## 56 SK Trivedi ML Hayden 5 6 1 0 0 0
## 59 SK Trivedi AM Rahane 2 4 2 0 0 0
## 60 SK Trivedi JP Duminy 24 28 9 2 0 1
## 61 SK Trivedi CA Pujara 10 12 5 1 1 0
## 63 SK Trivedi RS Bopara 6 10 3 0 0 0
## 66 SK Trivedi KB Arun Karthik 1 3 1 0 0 0
## 67 SK Trivedi T Thushara 2 3 1 0 0 0
## 68 SK Trivedi KM Jadhav 11 15 7 1 1 0
## 70 SK Trivedi Anirudh Singh 3 5 2 0 0 0
## 71 SK Trivedi RP Singh 1 4 2 2 0 0
## 73 SK Trivedi KA Pollard 10 19 7 0 0 0
## 76 SK Trivedi B Chipli 5 7 5 1 1 0
## 77 SK Trivedi DT Christian 3 7 3 1 0 0
## 78 SK Trivedi DW Steyn 1 2 1 0 0 0
## 84 SK Trivedi R McLaren 0 5 4 0 0 0
## 86 SK Trivedi NLTC Perera 1 2 1 1 0 0
## 87 SK Trivedi RV Gomez 0 1 1 1 0 0
## 88 SK Trivedi M Muralitharan 0 2 1 0 0 0
## 90 SK Trivedi Harpreet Singh 4 5 1 0 0 0
## 93 SK Trivedi R Sharma 0 1 1 1 0 0
## 96 SK Trivedi Mandeep Singh 7 8 3 0 1 0
## 97 SK Trivedi YK Pathan 22 25 8 1 2 0
## 103 SK Trivedi M Kaif 5 6 1 0 0 0
## 104 SK Trivedi DL Vettori 1 2 1 1 0 0
## 107 SK Trivedi MA Agarwal 2 4 2 0 0 0
## 109 SK Trivedi Gurkeerat Singh 9 11 3 1 0 0
## 112 SK Trivedi DJ Bravo 2 5 3 1 0 0
## 113 SK Trivedi CJ Ferguson 2 3 1 0 0 0
## 116 SK Trivedi CL White 8 11 5 1 1 0
## 117 SK Trivedi CA Lynn 1 2 1 1 0 0
## 122 SK Trivedi A Mukund 1 3 2 1 0 0
## 123 SK Trivedi MC Henriques 0 1 0 0 0 0
## 125 SK Trivedi GH Vihari 5 6 3 1 0 0
## 126 SK Trivedi BB Samantray 9 11 3 0 0 0
## Extras DotballPc StrikeRate
## 1 4 25.71 94.29
## 6 0 47.62 61.90
## 7 0 100.00 0.00
## 8 0 30.00 90.00
## 16 0 71.43 71.43
## 19 0 45.45 81.82
## 21 0 20.00 80.00
## 22 0 50.00 50.00
## 26 0 60.00 40.00
## 31 0 50.00 50.00
## 34 0 44.44 66.67
## 38 2 41.18 82.35
## 39 1 50.00 87.50
## 42 0 40.00 60.00
## 43 0 83.33 58.33
## 54 0 83.33 66.67
## 56 0 16.67 83.33
## 59 0 50.00 50.00
## 60 6 32.14 85.71
## 61 0 41.67 83.33
## 63 1 30.00 60.00
## 66 1 33.33 33.33
## 67 0 33.33 66.67
## 68 1 46.67 73.33
## 70 0 40.00 60.00
## 71 1 50.00 25.00
## 73 2 36.84 52.63
## 76 0 71.43 71.43
## 77 1 42.86 42.86
## 78 0 50.00 50.00
## 84 2 80.00 0.00
## 86 0 50.00 50.00
## 87 0 100.00 0.00
## 88 1 50.00 0.00
## 90 0 20.00 80.00
## 93 0 100.00 0.00
## 96 1 37.50 87.50
## 97 2 32.00 88.00
## 103 0 16.67 83.33
## 104 0 50.00 50.00
## 107 0 50.00 50.00
## 109 0 27.27 81.82
## 112 0 60.00 40.00
## 113 0 33.33 66.67
## 116 2 45.45 72.73
## 117 0 50.00 50.00
## 122 0 66.67 33.33
## 123 1 0.00 0.00
## 125 0 50.00 83.33
## 126 1 27.27 81.82
trivedi[trivedi$StrikeRate > 150,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 3 SK Trivedi JR Hopes 17 7 0 0 3 0
## 10 SK Trivedi A Symonds 43 21 2 1 4 2
## 17 SK Trivedi Z Khan 9 5 2 0 2 0
## 24 SK Trivedi SK Raina 92 56 6 1 10 1
## 37 SK Trivedi TM Dilshan 54 32 10 0 6 3
## 41 SK Trivedi R Dravid 21 9 1 0 3 1
## 55 SK Trivedi M Vijay 29 16 5 2 2 2
## 58 SK Trivedi Y Venugopal Rao 26 11 1 1 2 2
## 62 SK Trivedi OA Shah 7 3 1 0 0 1
## 65 SK Trivedi HH Gibbs 5 2 0 0 1 0
## 69 SK Trivedi AB McDonald 8 5 1 0 1 0
## 83 SK Trivedi PC Valthaty 24 8 3 0 3 2
## 92 SK Trivedi NL McCullum 8 3 0 0 0 1
## 98 SK Trivedi R Bhatia 13 8 3 1 2 0
## 127 SK Trivedi AP Tare 8 5 2 0 0 1
## Extras DotballPc StrikeRate
## 3 0 0.00 242.86
## 10 1 9.52 204.76
## 17 0 40.00 180.00
## 24 4 10.71 164.29
## 37 2 31.25 168.75
## 41 2 11.11 233.33
## 55 1 31.25 181.25
## 58 1 9.09 236.36
## 62 0 33.33 233.33
## 65 0 0.00 250.00
## 69 0 20.00 160.00
## 83 1 37.50 300.00
## 92 1 0.00 266.67
## 98 0 37.50 162.50
## 127 0 40.00 160.00
# Season 1
trivedi1 = getBowlingBreakdown(ipl1, "SK Trivedi")
And so on. You can do this for just about any players. I have not spent too much time fiddling around with the data, but even the limited work I have done has yielded some interesting insights. Of course, the advantage of using R for data processing is the availabilty of powerful visualization and statistical libraries. Here is a slightly trivial example - just to show how this could work, I guess - of how Mike Hussey, Chris Gayle, and Virat Kohli compare when they are bogged down by dot balls.
#### Mike Hussey
huss = getBattingBreakdown(allipl, "MEK Hussey")
huss[huss$StrikeRate > 140 & huss$Balls > 5,]
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 3 JR Hopes MEK Hussey 16 10 4 0 0 2
## 4 IK Pathan MEK Hussey 59 37 12 2 7 2
## 5 K Goel MEK Hussey 17 9 2 0 1 1
## 7 WA Mota MEK Hussey 17 6 0 0 2 1
## 9 DS Kulkarni MEK Hussey 27 19 6 1 1 2
## 12 JH Kallis MEK Hussey 62 40 9 2 4 3
## 13 B Akhil MEK Hussey 18 12 4 0 0 2
## 18 R Sathish MEK Hussey 20 10 1 0 3 0
## 25 JJ van der Wath MEK Hussey 22 12 2 0 3 0
## 40 I Sharma MEK Hussey 38 21 5 0 5 1
## 41 A Mishra MEK Hussey 44 25 7 1 5 2
## 48 STR Binny MEK Hussey 39 23 3 1 6 0
## 49 AL Menaria MEK Hussey 24 13 1 0 4 0
## 51 YK Pathan MEK Hussey 37 26 4 0 2 1
## 54 A Singh MEK Hussey 14 7 2 0 3 0
## 60 J Syed Mohammad MEK Hussey 24 11 2 1 1 2
## 61 A Mithun MEK Hussey 12 6 0 0 1 0
## 67 VR Aaron MEK Hussey 14 8 4 1 1 1
## 75 Shakib Al Hasan MEK Hussey 15 10 4 0 1 1
## 77 Azhar Mahmood MEK Hussey 20 12 2 0 1 1
## 78 P Awana MEK Hussey 24 16 6 0 4 0
## 80 S Nadeem MEK Hussey 24 17 1 0 0 2
## 81 AB Agarkar MEK Hussey 16 11 2 0 1 1
## 84 R Shukla MEK Hussey 19 8 1 0 4 0
## 86 KK Cooper MEK Hussey 30 19 4 1 5 0
## 87 DJG Sammy MEK Hussey 22 10 1 0 1 2
## 95 NLTC Perera MEK Hussey 11 6 1 1 2 0
## 97 S Kaul MEK Hussey 18 12 4 0 3 0
## 103 JD Unadkat MEK Hussey 12 8 1 1 2 0
## 105 Ankit Sharma MEK Hussey 18 11 2 1 0 1
## 111 MM Sharma MEK Hussey 10 6 2 0 2 0
## 112 R Ashwin MEK Hussey 11 7 3 0 0 1
## 116 YS Chahal MEK Hussey 21 12 3 0 0 2
## Extras DotballPc StrikeRate
## 3 1 40.00 160.00
## 4 1 32.43 159.46
## 5 0 22.22 188.89
## 7 0 0.00 283.33
## 9 2 31.58 142.11
## 12 2 22.50 155.00
## 13 0 33.33 150.00
## 18 1 10.00 200.00
## 25 0 16.67 183.33
## 40 1 23.81 180.95
## 41 1 28.00 176.00
## 48 2 13.04 169.57
## 49 2 7.69 184.62
## 51 1 15.38 142.31
## 54 0 28.57 200.00
## 60 0 18.18 218.18
## 61 0 0.00 200.00
## 67 0 50.00 175.00
## 75 0 40.00 150.00
## 77 0 16.67 166.67
## 78 0 37.50 150.00
## 80 2 5.88 141.18
## 81 1 18.18 145.45
## 84 0 12.50 237.50
## 86 1 21.05 157.89
## 87 1 10.00 220.00
## 95 0 16.67 183.33
## 97 0 33.33 150.00
## 103 1 12.50 150.00
## 105 0 18.18 163.64
## 111 0 33.33 166.67
## 112 0 42.86 157.14
## 116 0 25.00 175.00
huss[huss$StrikeRate < 110 & huss$Balls > 5,] # Zak, Nehra, RP Singh. And Harbhajan, Ojha, Murali Kartik
## Bowler Batsman Runs Balls Dotballs Dismissals Fours Sixes
## 8 A Nehra MEK Hussey 9 20 13 1 0 0
## 10 Z Khan MEK Hussey 31 36 16 4 3 1
## 15 Harbhajan Singh MEK Hussey 39 46 21 1 3 1
## 19 RG Sharma MEK Hussey 5 6 1 0 0 0
## 21 PP Ojha MEK Hussey 17 19 5 1 1 0
## 28 RP Singh MEK Hussey 28 26 15 1 6 0
## 29 R Vinay Kumar MEK Hussey 20 23 13 2 1 1
## 33 JE Taylor MEK Hussey 12 14 6 1 2 0
## 34 AC Thomas MEK Hussey 15 18 8 0 2 0
## 35 M Kartik MEK Hussey 15 15 6 1 2 0
## 38 JP Duminy MEK Hussey 13 14 4 0 1 0
## 39 DT Christian MEK Hussey 9 9 2 0 0 0
## 42 Harmeet Singh MEK Hussey 3 6 3 1 0 0
## 44 J Botha MEK Hussey 29 33 13 1 3 0
## 50 Iqbal Abdulla MEK Hussey 3 10 6 0 0 0
## 55 M Muralitharan MEK Hussey 8 8 3 0 1 0
## 57 RA Jadeja MEK Hussey 9 12 4 2 0 0
## 59 CH Gayle MEK Hussey 2 6 2 0 0 0
## 62 SP Narine MEK Hussey 37 44 20 4 3 0
## 63 Pankaj Singh MEK Hussey 6 7 4 0 1 0
## 64 SW Tait MEK Hussey 2 12 9 1 0 0
## 65 M Morkel MEK Hussey 30 34 21 0 5 0
## 66 UT Yadav MEK Hussey 12 21 11 1 1 0
## 73 AD Russell MEK Hussey 4 6 4 0 0 0
## 79 R Rampaul MEK Hussey 8 9 4 0 1 0
## 82 SMSM Senanayake MEK Hussey 7 12 8 0 1 0
## 85 JP Faulkner MEK Hussey 23 22 9 0 2 1
## 88 DW Steyn MEK Hussey 8 13 7 0 1 0
## 89 KV Sharma MEK Hussey 12 13 5 0 0 1
## 90 Shami Ahmed MEK Hussey 5 6 4 0 1 0
## 92 DJ Hussey MEK Hussey 8 10 2 0 0 0
## 96 VS Malik MEK Hussey 13 12 6 0 2 0
## 99 JA Morkel MEK Hussey 2 6 4 1 0 0
## 100 IC Pandey MEK Hussey 11 14 7 0 2 0
## 102 WD Parnell MEK Hussey 13 15 7 0 2 0
## 106 Sandeep Sharma MEK Hussey 2 6 4 1 0 0
## 113 MJ McClenaghan MEK Hussey 6 8 3 1 1 0
## 115 D Wiese MEK Hussey 11 11 3 1 1 0
## Extras DotballPc StrikeRate
## 8 0 65.00 45.00
## 10 4 44.44 86.11
## 15 0 45.65 84.78
## 19 1 16.67 83.33
## 21 5 26.32 89.47
## 28 1 57.69 107.69
## 29 1 56.52 86.96
## 33 2 42.86 85.71
## 34 2 44.44 83.33
## 35 0 40.00 100.00
## 38 0 28.57 92.86
## 39 0 22.22 100.00
## 42 0 50.00 50.00
## 44 0 39.39 87.88
## 50 1 60.00 30.00
## 55 0 37.50 100.00
## 57 0 33.33 75.00
## 59 6 33.33 33.33
## 62 0 45.45 84.09
## 63 0 57.14 85.71
## 64 1 75.00 16.67
## 65 1 61.76 88.24
## 66 1 52.38 57.14
## 73 0 66.67 66.67
## 79 0 44.44 88.89
## 82 0 66.67 58.33
## 85 1 40.91 104.55
## 88 1 53.85 61.54
## 89 1 38.46 92.31
## 90 0 66.67 83.33
## 92 1 20.00 80.00
## 96 0 50.00 108.33
## 99 0 66.67 33.33
## 100 2 50.00 78.57
## 102 1 46.67 86.67
## 106 0 66.67 33.33
## 113 2 37.50 75.00
## 115 0 27.27 100.00
hussLotsOfDots = huss[huss$DotballPc > 50 & huss$Balls > 5,]
#### Chris Gayle
gayle = getBattingBreakdown(allipl, "CH Gayle")
gayleLotsOfDots = gayle[gayle$DotballPc > 50 & gayle$Balls > 5,]
#### Virat Kohli
kohli = getBattingBreakdown(allipl, "V Kohli")
kohliLotsOfDots = kohli[kohli$DotballPc > 50 & kohli$Balls > 5,]
# Example plot: How do Virat Kohli, Mike Hussey, and Chris Gayle compare when they are bogged down by dot balls?
plot(xlab = "Dotball percent", ylab = "Strike Rate", hussLotsOfDots$DotballPc, hussLotsOfDots$StrikeRate, col='blue', ylim = c(0, 200), xlim = c(45, 80))
points(gayleLotsOfDots$DotballPc, gayleLotsOfDots$StrikeRate, col='red')
points(kohliLotsOfDots$DotballPc, kohliLotsOfDots$StrikeRate, col='green')
legend(x = "topleft", legend = c("Hussey", "Gayle", "Kohli"), col=c("blue", "red", "green"), pch = 1)
I would love to see what you come up with. Please let me know if you find anything interesting! I will probably give this more attention in a while and report more cool stuff I find.