| image | name | role | team | description |
|---|---|---|---|---|
| |
Jos Buttler(c) | Opener | England | England have had many players down the ages who have gained world acclaim, but Jos Buttler is arguably their first global Twenty20 superstar. Buttler helped bring England's limited-overs batting into the 21st century, his impact on the one-day and T20 sides extraordinary as they turned a group-stage exit in the 2015 World Cup into a triumph on home soil four years later, with his efforts with the bat and the gloves crucial to their Super-Over victory in the final. In an 18-month period from mid-2014, he scored what at the time were England's three fastest one-day hundreds - thrilling innings against Sri Lanka at Lord's, New Zealand at Edgbaston and, topping the list, a 46-ball onslaught against Pakistan in Dubai. He has also shone at the IPL, and has quickly become a senior player in the Test side since his surprise recall in 2018. |
| |
Alex Hales | Opener | England | Despite a central role in the resurgence of England's limited-overs team following the debacle of the 2015 World Cup, Alex Hales will probably be remembered more for what he missed than what he achieved. He sat out the 2019 World Cup after it emerged he had served a ban for a second drugs test failure for a recreational substance, which seemed to lead the England management and the team's senior players to decide that Hales' behaviour had caused a breakdown of trust between the parties. He was also overlooked for the 2021 T20 World Cup. |
| |
Virat Kohli | Anchor | India | India has given to the world many a great cricketer but perhaps none as ambitious as Virat Kohli. To meet his ambition, Kohli employed the technical assiduousness of Sachin Tendulkar and fitness that was in the league of top athletes in the world, not just cricketers. As a result, Kohli became the most consistent all-format accumulator of his time, making jaw-dropping chases look easy, and finding, in his own words, the safest possible way to score runs. Plenty of them. |
| |
Suryakumar Yadav | Anchor | India | Hard-hitting 360-degree batter Suryakumar Yadav has all the shots, including a few not in any textbook save the one written by AB de Villiers. he also has a yen for making batting look easy, as he showed during four golden years with Mumbai Indians starting in 2018, during which they won the IPL title twice, thanks in no small part to his 1700-plus runs at a strike rate of around 140. |
| |
Daryl Mitchell | Anchor | New Zealand | Daryl Mitchell was called into New Zealand's Test team in late 2019 as a replacement for the injured Colin de Grandhomme. He impressed, too, making an assured 73 against England in his first innings and bowling with good control on a sluggish surface at his home ground, Hamilton. He had made his international debut against India in a T20I in February of that year. |
| |
Sam Curran | All Rounder | England | Sam Curran, younger brother of Tom Curran, his fellow Surrey all-rounder, and son of the former Zimbabwe cricketer Kevin Curran, fulfilled his destiny at the age of 19 years and 363 days, when he made his Test debut against Pakistan at Headingley in June 2018. One Test later, he scooped his maiden Man-of-the-Match award, after four first-innings wickets and a thrilling counter-attacking half-century had given England the edge in a gripping Edgbaston Test against India. His success merely heightened the debate as to whether batting or bowling will ultimately become his strongest suit. |
| |
Rashid Khan | All Rounder | Afghanistan | Rashid Khan has been Afghanistan's first global superstar, and the key to their successes in their early years in international cricket. His extraordinarily effective legspin has made him one of the greatest T20 bowlers ever, among the first names on wishlists of teams in leagues all around the world. |
| |
Mitchell Santner | All Rounder | New Zealand | A left-handed batsman and left-arm spinner, Mitchell Santner was first elevated to the New Zealand side after a promising 2014-15 domestic season. |
| |
Wanindu Hasaranga de Silva | Legspinner | Sri Lanka | A bruising lower-middle order batsman, and an aggressive legbreak bowler, Wanidu Hasaranga graduated from a strong Richmond College outfit, had a fine run in Sri Lanka's 2015 and 2016 Under-19 teams, and has made a promising start to his domestic cricket career. |
| |
Shaheen Shah Afridi | Fast Bowler | Pakistan | A baby face perched on a two-metre body, Shaheen Afridi's story is trademark Pakistani. An 18-year old already comfortable in the green shirt of the national side, he's been on the radar of the national selectors for almost three years. In a more intimate circle, he was destined for great achievements well before his teenage years, with an international cricketer for an elder brother. |
| |
Anrich Nortje | Fast Bowler | South Africa | Anrich Nortje is a genuine quick who has been described as "extremely exciting" by none other than Dale Steyn. Like Steyn, Nortje is not a product of a big city but comes from the town of Uitenhage, north of Port Elizabeth, which is home to the largest Volkswagen factory in the African continent. It's hardly surprising then, that Nortje is well-acquainted with speed. He regularly sends the speed gun over 150kph and has a fearsome bouncer. |
Selection Criteria:
Openers (2):
Batting average > 30
Batting strike rate > 140
Innings batted > 3
Boundary % > 50
Batting position < 3
Anchors (3):
Batting average > 40
Batting strike rate > 125
Innings Batted > 3
Average balls faced > 20
Batting position > 2
All rounders (2):
Batting average > 15
Batting strike rate > 140
Innings batted > 2
Batting position > 4
Innings bowled > 2
Economy < 7
Bowling strike rate < 20
Fast bowlers (3)*:
Innings bowled > 4
Economy < 7
Bowling strike rate < 16
Bowling style = “fast”
Bowling average < 20
Dot ball % > 40
Legspinner (1):
Innings bowled > 4
Economy < 7
Bowling strike rate < 16
Bowling style = “legbreak”
Bowling average < 20
Note: Sam Curran was initially picked as a fast bowler, but since he is an all-rounder, he is classified as an all-rounder in the super team.
| image | name | team | totalRuns | battingAvg | battingSR | innsBatted | boundaryPer | battingPos | avgBallsFaced |
|---|---|---|---|---|---|---|---|---|---|
| |
Jos Buttler(c) | England | 225 | 45.00 | 144 | 6 | 61.33 | 1 | 26 |
| |
Alex Hales | England | 212 | 42.40 | 147 | 6 | 64.15 | 2 | 24 |
| |
Kusal Mendis | Sri Lanka | 223 | 31.86 | 143 | 8 | 57.40 | 2 | 20 |
| |
Quinton de Kock | South Africa | 124 | 31.00 | 161 | 5 | 75.81 | 2 | 15 |
Sorted by batting average
Batting average > 30
Batting strike rate > 140
Innings batted > 3
Boundary % > 50
Batting position < 3
| image | name | team | totalRuns | battingAvg | battingSR | innsBatted | boundaryPer | battingPos | avgBallsFaced |
|---|---|---|---|---|---|---|---|---|---|
| |
Virat Kohli | India | 296 | 98.67 | 136 | 6 | 50.00 | 3 | 36 |
| |
Suryakumar Yadav | India | 239 | 59.75 | 190 | 6 | 66.11 | 4 | 21 |
| |
Daryl Mitchell | New Zealand | 109 | 54.50 | 128 | 4 | 23.85 | 6 | 21 |
| |
Glenn Phillips | New Zealand | 201 | 40.20 | 158 | 5 | 61.69 | 4 | 25 |
Sorted by batting average
Batting average > 40
Batting strike rate > 125
Innings Batted > 3
Average balls faced > 20
Batting position > 2
| image | name | team | totalRuns | battingAvg | battingSR | innsBatted | boundaryPer | battingPos | bowlingStyle | totalWickets | economy | bowlingAvg | bowlingSR | innsBowled |
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| |
Rashid Khan | Afghanistan | 57 | 28.50 | 178 | 3 | 70.18 | 8 | legbreak googly | 4 | 6.42 | 19.25 | 18 | 3 |
| |
Mitchell Santner | New Zealand | 27 | 27.00 | 169 | 3 | 44.44 | 7 | slow left arm orthodox | 9 | 6.45 | 14.33 | 13 | 5 |
| |
Shadab Khan | Pakistan | 98 | 24.50 | 169 | 6 | 59.18 | 6 | legbreak | 11 | 6.35 | 15.00 | 14 | 7 |
| |
Glenn Maxwell | Australia | 118 | 39.33 | 162 | 4 | 67.80 | 5 | right arm offbreak | 3 | 6.00 | 6.33 | 6 | 2 |
| |
Sikandar Raza | Zimbabwe | 219 | 27.38 | 148 | 8 | 59.36 | 5 | right arm offbreak | 10 | 6.50 | 15.60 | 14 | 8 |
Sorted by batting strike rate
Batting average > 15
Batting strike rate > 140
Innings batted > 2
Batting position > 4
Innings bowled > 2
Economy < 7
Bowling strike rate < 20
| image | name | team | totalWickets | economy | bowlingAvg | bowlingSR | innsBowled | runsConceded | ballsBowled | dotBallPer |
|---|---|---|---|---|---|---|---|---|---|---|
| |
Anrich Nortje | South Africa | 11 | 5.37 | 8.55 | 10 | 5 | 94 | 105 | 55 |
| |
Sam Curran | England | 13 | 6.53 | 11.38 | 10 | 6 | 148 | 136 | 49 |
| |
Shaheen Shah Afridi | Pakistan | 11 | 6.16 | 14.09 | 14 | 7 | 155 | 151 | 46 |
| |
Tim Southee | New Zealand | 7 | 6.58 | 16.29 | 15 | 5 | 114 | 104 | 50 |
Sorted by bowling average
Innings bowled > 4
Economy < 7
Bowling strike rate < 16
Bowling style = “fast”
Bowling average < 20
Dot ball % > 40
| image | name | team | totalWickets | economy | bowlingAvg | bowlingSR | innsBowled | runsConceded | ballsBowled | dotBallPer |
|---|---|---|---|---|---|---|---|---|---|---|
| |
Wanindu Hasaranga de Silva | Sri Lanka | 15 | 6.42 | 13.27 | 12 | 8 | 199 | 186 | 40 |
| |
Shadab Khan | Pakistan | 11 | 6.35 | 15.00 | 14 | 7 | 165 | 156 | 38 |
Sorted by bowling average
Innings bowled > 4
Economy < 7
Bowling strike rate < 16
Bowling style = “legbreak”
Bowling average < 20
---
title: "ICC T20 World Cup 2022 Team of the Tournament"
output:
flexdashboard::flex_dashboard:
orientation: columns
vertical_layout: fill
theme:
version: 4
bg: "#FDF7F7"
fg: "#101010"
primary: "#320073"
navbar-bg: "#ff00a5"
source_code: embed
---
```{r setup, include=FALSE}
library(flexdashboard)
library(dplyr)
library(tidyverse)
library(htmltools)
library(kableExtra)
library(knitr)
library(scatterplot3d)
```
Team Summary
==============================
## ICC T20 World Cup 2022 Team of the Tournament
```{r}
#getwd()
# Read player data
player_data <- read.csv("t20_csv_files/final_player_data.csv")
playing11 <- read.csv("t20_csv_files/playing11.csv")
# Function to generate HTML code for displaying images
image_html <- function(url) {
img_tag <- sprintf('<img src="%s" style="width:100px;height:100px;">', url)
htmltools::HTML(img_tag)
}
# Create a new column with image HTML code
playing11$image <- lapply(playing11$image, image_html)
playing11 <- playing11[,c("image", "name", "role", "team", "description")]
# Display table with images
table_with_images <- knitr::kable(playing11, "html", escape = FALSE) %>%
kableExtra::kable_styling(full_width = FALSE)
# Create HTML widget to render the table
table_widget <- htmltools::HTML(table_with_images)
# Output the table widget
table_widget
```
Selection Criteria:
Openers (2):
* Batting average > 30
* Batting strike rate > 140
* Innings batted > 3
* Boundary % > 50
* Batting position < 3
Anchors (3):
* Batting average > 40
* Batting strike rate > 125
* Innings Batted > 3
* Average balls faced > 20
* Batting position > 2
All rounders (2):
* Batting average > 15
* Batting strike rate > 140
* Innings batted > 2
* Batting position > 4
* Innings bowled > 2
* Economy < 7
* Bowling strike rate < 20
Fast bowlers (3)*:
* Innings bowled > 4
* Economy < 7
* Bowling strike rate < 16
* Bowling style = "fast"
* Bowling average < 20
* Dot ball % > 40
Legspinner (1):
* Innings bowled > 4
* Economy < 7
* Bowling strike rate < 16
* Bowling style = "legbreak"
* Bowling average < 20
Note: Sam Curran was initially picked as a fast bowler, but since he is an all-rounder, he is classified as an all-rounder in the super team.
Openers {data-orientation=columns}
==============================
Column
---------------------------------
### List of potential openers (scroll)
```{r}
openers <- player_data %>%
filter(battingAvg > 30, battingSR > 140, innsBatted > 3, boundaryPer > 50, battingPos < 3) %>%
arrange(desc(battingAvg)) %>%
select(image, name, team, totalRuns, battingAvg, battingSR, innsBatted, boundaryPer, battingPos, avgBallsFaced)
# Create a new column with image HTML code
openers$image <- lapply(openers$image, image_html)
table_with_images <- knitr::kable(openers, "html", escape = FALSE) %>%
kableExtra::kable_styling(full_width = FALSE) %>%
kableExtra::row_spec(1:2, background = "lightgreen")
table_widget <- htmltools::HTML(table_with_images)
table_widget
```
Column
---------------------------------
### 3d scatterplot comparing batting average, batting strike rate, and boundary percentage
```{r}
s3d <- scatterplot3d(openers$battingAvg, openers$battingSR, openers$boundaryPer,
color="blue", pch=19, # filled blue circles
main="Batting Avg vs Batting SR vs Boundary %",
xlab = "Batting Average", ylab = "Batting Strike Rate", zlab = "Boundary Percentage")
s3d.coords <- s3d$xyz.convert(openers$battingAvg, openers$battingSR, openers$boundaryPer) # convert 3D coords to 2D projection
text(s3d.coords$x, s3d.coords$y, # x and y coordinates
labels=openers$name, # text to plot
cex=1, pos=4)
```
### Selection Criteria:
Sorted by batting average
* Batting average > 30
* Batting strike rate > 140
* Innings batted > 3
* Boundary % > 50
* Batting position < 3
Anchors{data-orientation=columns}
==============================
Column
---------------------------------
### List of potential anchors (scroll)
```{r}
anchors <- player_data %>%
filter(battingAvg > 40, battingSR > 125, innsBatted > 3, avgBallsFaced > 20, battingPos > 2) %>%
arrange(desc(battingAvg)) %>%
select(image, name, team, totalRuns, battingAvg, battingSR, innsBatted, boundaryPer, battingPos, avgBallsFaced)
# Create a new column with image HTML code
anchors$image <- lapply(anchors$image, image_html)
table_with_images <- knitr::kable(anchors, "html", escape = FALSE) %>%
kableExtra::kable_styling(full_width = FALSE) %>%
kableExtra::row_spec(1:3, background = "lightgreen")
table_widget <- htmltools::HTML(table_with_images)
table_widget
```
Column
---------------------------------
### 3d scatterplot comparing batting average, batting strike rate, and boundary percentage
```{r}
s3d <- scatterplot3d(anchors$battingAvg, anchors$battingSR, anchors$boundaryPer,
color="blue", pch=19, # filled blue circles
main="Batting Avg vs Batting SR vs Boundary %",
xlab = "Batting Average", ylab = "Batting Strike Rate", zlab = "Boundary Percentage")
s3d.coords <- s3d$xyz.convert(anchors$battingAvg, anchors$battingSR, anchors$boundaryPer) # convert 3D coords to 2D projection
text(s3d.coords$x, s3d.coords$y, # x and y coordinates
labels=anchors$name, # text to plot
cex=1, pos=4)
```
### Selection Criteria:
Sorted by batting average
* Batting average > 40
* Batting strike rate > 125
* Innings Batted > 3
* Average balls faced > 20
* Batting position > 2
All Rounders {data-orientation=columns}
==============================
Column
---------------------------------
### List of potential all rounders (scroll)
```{r}
all_rounders <- player_data %>%
filter(battingAvg > 15, battingSR > 140, innsBatted > 2, battingPos > 4, economy < 7, bowlingSR < 20) %>%
arrange(desc(battingSR)) %>%
select(image, name, team, totalRuns, battingAvg, battingSR, innsBatted, boundaryPer, battingPos, bowlingStyle, totalWickets, economy, bowlingAvg, bowlingSR, innsBowled)
# Create a new column with image HTML code
all_rounders$image <- lapply(all_rounders$image, image_html)
table_with_images <- knitr::kable(all_rounders, "html", escape = FALSE) %>%
kableExtra::kable_styling(full_width = FALSE) %>%
kableExtra::row_spec(1:2, background = "lightgreen")
table_widget <- htmltools::HTML(table_with_images)
table_widget
```
Column
---------------------------------
### 3d scatterplot comparing batting average, batting strike rate, and boundary percentage (open image in a new tab for a better view)
```{r}
s3d <- scatterplot3d(all_rounders$battingAvg, all_rounders$battingSR, all_rounders$boundaryPer,
color="blue", pch=19, # filled blue circles
main="Batting Avg vs Batting SR vs Boundary %",
xlab = "Batting Average", ylab = "Batting Strike Rate", zlab = "Boundary Percentage")
s3d.coords <- s3d$xyz.convert(all_rounders$battingAvg, all_rounders$battingSR, all_rounders$boundaryPer) # convert 3D coords to 2D projection
text(s3d.coords$x, s3d.coords$y, # x and y coordinates
labels=all_rounders$name, # text to plot
cex=1, pos=4)
```
### 3d scatterplot comparing economy, bowling average, and bowling strike rate (open image in a new tab for a better view)
```{r}
options(repr.plot.width = 8, repr.plot.height = 6)
s3d <- scatterplot3d(all_rounders$economy, all_rounders$bowlingAvg, all_rounders$bowlingSR,
color="blue", pch=19, # filled blue circles
main="Economy vs Bowling Average vs Bowling SR",
xlab = "Economy", ylab = "Bowling Average", zlab = "Bowling Strike Rate")
s3d.coords <- s3d$xyz.convert(all_rounders$economy, all_rounders$bowlingAvg, all_rounders$bowlingSR) # convert 3D coords to 2D projection
text(s3d.coords$x, s3d.coords$y, # x and y coordinates
labels=all_rounders$name, # text to plot
cex=1, pos=4)
```
### Selection Criteria:
Sorted by batting strike rate
* Batting average > 15
* Batting strike rate > 140
* Innings batted > 2
* Batting position > 4
* Innings bowled > 2
* Economy < 7
* Bowling strike rate < 20
Fast Bowlers {data-orientation=columns}
==============================
Column
---------------------------------
### List of potential fast bowlers
```{r}
fast_bowlers <- player_data %>%
filter(innsBowled > 4, economy < 7, bowlingSR < 16, grepl("fast", bowlingStyle, fixed = T), bowlingAvg < 20, dotBallPer > 40) %>%
arrange(bowlingAvg) %>%
select(image, name, team, totalWickets, economy, bowlingAvg, bowlingSR, innsBowled, runsConceded, ballsBowled, dotBallPer)
# Create a new column with image HTML code
fast_bowlers$image <- lapply(fast_bowlers$image, image_html)
table_with_images <- knitr::kable(fast_bowlers, "html", escape = FALSE) %>%
kableExtra::kable_styling(full_width = FALSE) %>%
kableExtra::row_spec(1:3, background = "lightgreen")
table_widget <- htmltools::HTML(table_with_images)
table_widget
```
Column
---------------------------------
### 3d scatterplot comparing economy, bowling average, and bowling strike rate
```{r}
options(repr.plot.width = 8, repr.plot.height = 6)
s3d <- scatterplot3d(fast_bowlers$economy, fast_bowlers$bowlingAvg, fast_bowlers$bowlingSR,
color="blue", pch=19, # filled blue circles
main="Economy vs Bowling Average vs Bowling SR",
xlab = "Economy", ylab = "Bowling Average", zlab = "Bowling Strike Rate")
s3d.coords <- s3d$xyz.convert(fast_bowlers$economy, fast_bowlers$bowlingAvg, fast_bowlers$bowlingSR) # convert 3D coords to 2D projection
text(s3d.coords$x, s3d.coords$y, # x and y coordinates
labels=fast_bowlers$name, # text to plot
cex=1, pos=4)
```
### Selection Criteria:
Sorted by bowling average
* Innings bowled > 4
* Economy < 7
* Bowling strike rate < 16
* Bowling style = "fast"
* Bowling average < 20
* Dot ball % > 40
Legspinners {data-orientation=columns}
==============================
Column
---------------------------------
### List of potential legspinners
```{r}
mystery_spinner <- player_data %>%
filter(innsBowled > 4, economy < 7, bowlingSR < 16, grepl("legbreak", bowlingStyle, fixed = T), bowlingAvg < 20) %>%
arrange(bowlingAvg) %>%
select(image, name, team, totalWickets, economy, bowlingAvg, bowlingSR, innsBowled, runsConceded, ballsBowled, dotBallPer)
# Create a new column with image HTML code
mystery_spinner$image <- lapply(mystery_spinner$image, image_html)
table_with_images <- knitr::kable(mystery_spinner, "html", escape = FALSE) %>%
kableExtra::kable_styling(full_width = FALSE) %>%
kableExtra::row_spec(1:1, background = "lightgreen")
table_widget <- htmltools::HTML(table_with_images)
table_widget
```
Column
---------------------------------
```{r}
options(repr.plot.width = 8, repr.plot.height = 6)
s3d <- scatterplot3d(mystery_spinner$economy, mystery_spinner$bowlingAvg, mystery_spinner$bowlingSR,
color="blue", pch=19, # filled blue circles
main="Economy vs Bowling Average vs Bowling SR",
xlab = "Economy", ylab = "Bowling Average", zlab = "Bowling Strike Rate")
s3d.coords <- s3d$xyz.convert(mystery_spinner$economy, mystery_spinner$bowlingAvg, mystery_spinner$bowlingSR) # convert 3D coords to 2D projection
text(s3d.coords$x, s3d.coords$y, # x and y coordinates
labels=mystery_spinner$name, # text to plot
cex=1, pos=4)
```
### Selection Criteria:
Sorted by bowling average
* Innings bowled > 4
* Economy < 7
* Bowling strike rate < 16
* Bowling style = "legbreak"
* Bowling average < 20