LigaPremier 2020/2021 diawali 12 September 2020 dan berakhir pada 23 Mei 2021. Berikut ini adalah tabel hasil perolehan Liga Premier, update terbaru Live Score, disertai dengan daftar Top Score dan visualisasinya.
Sumber: https://www.bbc.com/sport/football/tables Last updated 4rd Juni 2021 at 14:14
loading library
library(rvest)
## Warning: package 'rvest' was built under R version 4.0.5
library(stringr)
## Warning: package 'stringr' was built under R version 4.0.5
library(tidyverse)
## Warning: package 'tidyverse' was built under R version 4.0.5
## -- Attaching packages --------------------------------------- tidyverse 1.3.1 --
## v ggplot2 3.3.3 v purrr 0.3.4
## v tibble 3.1.1 v dplyr 1.0.6
## v tidyr 1.1.3 v forcats 0.5.1
## v readr 1.4.0
## Warning: package 'ggplot2' was built under R version 4.0.4
## Warning: package 'tibble' was built under R version 4.0.5
## Warning: package 'tidyr' was built under R version 4.0.4
## Warning: package 'readr' was built under R version 4.0.4
## Warning: package 'purrr' was built under R version 4.0.4
## Warning: package 'dplyr' was built under R version 4.0.5
## Warning: package 'forcats' was built under R version 4.0.4
## -- Conflicts ------------------------------------------ tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x readr::guess_encoding() masks rvest::guess_encoding()
## x dplyr::lag() masks stats::lag()
library(data.table)
## Warning: package 'data.table' was built under R version 4.0.5
##
## Attaching package: 'data.table'
## The following objects are masked from 'package:dplyr':
##
## between, first, last
## The following object is masked from 'package:purrr':
##
## transpose
#membaca file HTML dari halaman website
url <-"https://www.bbc.com/sport/football/european-championship/table"
html <- url %>% read_html
#membuat data frame dan menampilkan strukturnya
epl_table <- html %>%
html_node(".gs-o-table") %>%
html_table
str(epl_table)
## tibble [5 x 12] (S3: tbl_df/tbl/data.frame)
## $ Live: chr [1:5] "1" "2" "3" "4" ...
## $ : chr [1:5] "team has moved up" "team has moved down" "team hasn't moved" "team hasn't moved" ...
## $ Team: chr [1:5] "Wales" "Italy" "Switzerland" "Turkey" ...
## $ P : chr [1:5] "2" "1" "1" "2" ...
## $ W : chr [1:5] "1" "1" "0" "0" ...
## $ D : chr [1:5] "1" "0" "1" "0" ...
## $ L : chr [1:5] "0" "0" "0" "2" ...
## $ F : chr [1:5] "2" "3" "1" "0" ...
## $ A : chr [1:5] "1" "0" "1" "4" ...
## $ GD : chr [1:5] "1" "3" "0" "-4" ...
## $ Pts : chr [1:5] "4" "3" "1" "0" ...
## $ Form: chr [1:5] "DDrew 1 - 1 against Switzerland on June 12th 2021." "WWon 3 - 0 against Turkey on June 11th 2021." "DDrew 1 - 1 against Wales on June 12th 2021." "LLost 0 - 3 against Italy on June 11th 2021." ...
#merapikan data frame
epl_table
## # A tibble: 5 x 12
## Live `` Team P W D L F A GD Pts Form
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 1 team ~ Wales 2 1 1 0 2 1 1 4 DDre~
## 2 2 team ~ Italy 1 1 0 0 3 0 3 3 WWon~
## 3 3 team ~ Switz~ 1 0 1 0 1 1 0 1 DDre~
## 4 4 team ~ Turkey 2 0 0 2 0 4 -4 0 LLos~
## 5 Last ~ Last ~ Last ~ Last ~ Last ~ Last ~ Last ~ Last~ Last~ Last~ Last~ Last~
epl_table[1:2] <- list(NULL)
epl_table <- epl_table[-21,]
epl_table
## # A tibble: 5 x 10
## Team P W D L F A GD Pts Form
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Wales 2 1 1 0 2 1 1 4 DDrew ~
## 2 Italy 1 1 0 0 3 0 3 3 WWon 3~
## 3 Switze~ 1 0 1 0 1 1 0 1 DDrew ~
## 4 Turkey 2 0 0 2 0 4 -4 0 LLost ~
## 5 Last u~ Last u~ Last u~ Last u~ Last u~ Last u~ Last u~ Last u~ Last ~ Last u~
str(epl_table)
## tibble [5 x 10] (S3: tbl_df/tbl/data.frame)
## $ Team: chr [1:5] "Wales" "Italy" "Switzerland" "Turkey" ...
## $ P : chr [1:5] "2" "1" "1" "2" ...
## $ W : chr [1:5] "1" "1" "0" "0" ...
## $ D : chr [1:5] "1" "0" "1" "0" ...
## $ L : chr [1:5] "0" "0" "0" "2" ...
## $ F : chr [1:5] "2" "3" "1" "0" ...
## $ A : chr [1:5] "1" "0" "1" "4" ...
## $ GD : chr [1:5] "1" "3" "0" "-4" ...
## $ Pts : chr [1:5] "4" "3" "1" "0" ...
## $ Form: chr [1:5] "DDrew 1 - 1 against Switzerland on June 12th 2021." "WWon 3 - 0 against Turkey on June 11th 2021." "DDrew 1 - 1 against Wales on June 12th 2021." "LLost 0 - 3 against Italy on June 11th 2021." ...
#format ulang kolom form
epl_table$Form[1]
## [1] "DDrew 1 - 1 against Switzerland on June 12th 2021."
extract_form <- function(form){
str_extract_all(form, "WWon|DDrew|LLost")
}
form <- sapply(epl_table$Form, extract_form, USE.NAMES = FALSE)
str(form)
## List of 5
## $ : chr "DDrew"
## $ : chr "WWon"
## $ : chr "DDrew"
## $ : chr "LLost"
## $ : chr(0)
#merapikan kolom form
simply_form <- function(form){
form %>%
str_extract("W|D|L") %>%
paste(collapse = ",")
}
form <- sapply(form, simply_form)
str(form)
## chr [1:5] "D" "W" "D" "L" ""
#update kolom Form dengan vector form.
epl_table$Form <- form
print(epl_table)
## # A tibble: 5 x 10
## Team P W D L F A GD Pts Form
## <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr> <chr>
## 1 Wales 2 1 1 0 2 1 1 4 "D"
## 2 Italy 1 1 0 0 3 0 3 3 "W"
## 3 Switzer~ 1 0 1 0 1 1 0 1 "D"
## 4 Turkey 2 0 0 2 0 4 -4 0 "L"
## 5 Last up~ Last u~ Last u~ Last u~ Last u~ Last u~ Last u~ Last u~ Last u~ ""
Legenda P : Played W : Won D : Draw L : Lose F : For A : Against GD : Goal Different Pts : Points Form: Form
#visualisasi perolehan point tertinggi
ggplot2::ggplot()
ggplot(data = epl_table) +
geom_bar(mapping = aes(x = Team, y = Pts), stat = "identity")
#visualisai perbandingan jumlah goal ke kandang lawan dan kebobolan
ggplot(data = epl_table) +
geom_bar(mapping = aes(x = Team, y = GD), stat = "identity")
Referensi: https://www.bbc.com/sport/football/premier-league/table https://www.nurandi.id/blog/web-scraping-dengan-r-dan-rvest-parsing-tabel-html/ https://www.netlify.com/ https://gohugo.io/ https://www.netlify.com/authors/david-calavera/ https://bookdown.org/moh_rosidi2610/Metode_Numerik/dataviz.html#plotfunc