Description

This script scrapes UFC fighter information from the http://www.fightmetric.com website.

The script is adapted from:

https://github.com/jasonchanhku/UFC-MMA-Predictor/blob/master/UFC%20MMA%20Predictor%20Workflow.ipynb


Libraries

library(rvest)
library(dplyr)
library(tidyr)
library(stringr)


Web Scrape Fighter Stats

Loop through alphabet to get list of all desired webpages.

webpage <- character(length(letters))
url_list <- c()

for(j in 1:length(letters)){
  
  webpage[j] <- paste0("http://www.fightmetric.com/statistics/fighters?char=", letters[j], "&page=all")
  temp <- read_html(webpage[j]) %>% html_nodes(".b-statistics__table-col:nth-child(1) .b-link_style_black") %>% html_attr("href")
  url_list <- c(url_list, temp)     
}


Initialization

Create data structures to store the following fighter stats:

LEGEND: SLpM - Significant Strikes Landed per Minute Str. Acc. - Significant Striking Accuracy SApM - Significant Strikes Absorbed per Minute Str. Def. - Significant Strike Defence (the % of opponents strikes that did not land) TD Avg. - Average Takedowns Landed per 15 minutes TD Acc. - Takedown Accuracy TD Def. - Takedown Defense (the % of opponents TD attempts that did not land) Sub. Avg. - Average Submissions Attempted per 15 minutes

name <- character(length(url_list))
weightclass <- numeric(length(url_list))
reach <- numeric(length(url_list))
slpm <- numeric(length(url_list))
td <- numeric(length(url_list))
tda <- numeric(length(url_list))
tdd <- numeric(length(url_list))
stra <- numeric(length(url_list))
strd <- numeric(length(url_list))
suba <- numeric(length(url_list))
sapm <- numeric(length(url_list))


Loop

# start the clock
ptm <- proc.time()

for(i in 1:length(url_list)) {
  
  # # print iteration
  # print(sprintf("%d of %d", i, length(url_list)))
  # # start the clock
  # ptm <- proc.time()
  
  # fighter url
  fighter_url <- read_html(url_list[i])
  
  # fighter name
  name_t <- fighter_url %>% html_nodes(".b-content__title-highlight") %>% html_text()
  name_t <- gsub("\n", "", name_t)
  name[i] <- as.character(trimws(name_t))
  
  # weightclass
  weightclass_t <- fighter_url %>% html_nodes(".b-list__info-box_style_small-width .b-list__box-list-item_type_block:nth-child(2)") %>% html_text()
  weightclass_t <- gsub(" ", "", weightclass_t)
  weightclass_t <- gsub("\n", "", weightclass_t)
  weightclass_t <- strsplit(weightclass_t, ":")
  weightclass_t <- weightclass_t[[1]][2]
  weightclass_t <- strsplit(weightclass_t, "l")
  weightclass[i] <- as.numeric(as.character(weightclass_t[[1]][1]))
  
  # reach
  reach_t <- fighter_url %>% html_nodes(".b-list__info-box_style_small-width .b-list__box-list-item_type_block:nth-child(3)") %>% html_text()
  reach_t <- gsub(" ", "", reach_t)
  reach_t <- gsub("\n", "", reach_t)
  reach_t <- strsplit(reach_t, ":")
  reach_t <- reach_t[[1]][2]
  reach_t <- strsplit(reach_t, "\"")
  reach[i] <- as.numeric(as.character(reach_t[[1]][1]))
  
  # feature 1: slpm
  slpm_t <- fighter_url %>% html_nodes(".b-list__info-box-left .b-list__info-box-left .b-list__box-list-item_type_block:nth-child(1)") %>% html_text()
  slpm_t <- gsub(" ", "", slpm_t)
  slpm_t <- gsub("\n", "", slpm_t)
  slpm_t <- strsplit(slpm_t, ":")
  slpm_t <- slpm_t[[1]][2]
  slpm[i] <- as.numeric(slpm_t)
  
  # feature 2: takedown avg
  td_t <- fighter_url %>% html_nodes(".b-list__info-box_style-margin-right .b-list__box-list-item_type_block:nth-child(2)") %>% html_text()
  td_t<- gsub(" ", "", td_t)
  td_t <- gsub("\n", "", td_t)
  td_t <- strsplit(td_t, ":")
  td_t <- td_t[[1]][2]
  td[i] <- as.numeric(td_t)
  
  # feature 3: significant striking accuracy
  stra_t <- fighter_url %>% html_nodes(".b-list__info-box-left .b-list__info-box-left .b-list__box-list-item_type_block:nth-child(2)") %>% html_text()
  stra_t <- gsub(" ", "", stra_t)
  stra_t <- gsub("\n", "", stra_t)
  stra_t <- strsplit(stra_t, ":")
  stra_t <- stra_t[[1]][2]
  stra_t <- strsplit(stra_t, "%")
  stra[i] <- as.numeric(stra_t) / 100
  
  # feature 4: takedown accuracy 
  tda_t <- fighter_url %>% html_nodes(".b-list__info-box_style-margin-right .b-list__box-list-item_type_block:nth-child(3)") %>% html_text()
  tda_t <- gsub(" ", "", tda_t)
  tda_t <- gsub("\n", "", tda_t)
  tda_t <- strsplit(tda_t, ":")
  tda_t <- tda_t[[1]][2]
  tda_t <- strsplit(tda_t, "%")
  tda[i] <- as.numeric(tda_t) / 100
  
  # feature 5: significant absorbed stras per minute
  sapm_t <- fighter_url %>% html_nodes(".b-list__info-box-left .b-list__info-box-left .b-list__box-list-item_type_block:nth-child(3)") %>% html_text()
  sapm_t <- gsub(" ", "", sapm_t)
  sapm_t <- gsub("\n", "", sapm_t)
  sapm_t <- strsplit(sapm_t, ":")
  sapm_t <- sapm_t[[1]][2]
  sapm[i] <- as.numeric(sapm_t)
  
  # feature 6: takedown def
  tdd_t <- fighter_url %>% html_nodes(".b-list__info-box_style-margin-right .b-list__box-list-item_type_block:nth-child(4)") %>% html_text()
  tdd_t <- gsub(" ", "", tdd_t)
  tdd_t <- gsub("\n", "", tdd_t)
  tdd_t <- strsplit(tdd_t, ":")
  tdd_t <- tdd_t[[1]][2]
  tdd_t <- strsplit(tdd_t, "%")
  tdd[i] <- as.numeric(tdd_t) / 100
  
  # feature 7: striking def
  strd_t <- fighter_url %>% html_nodes(".b-list__info-box-left .b-list__info-box-left .b-list__box-list-item_type_block:nth-child(4)") %>% html_text()
  strd_t <- gsub(" ", "", strd_t)
  strd_t <- gsub("\n", "", strd_t)
  strd_t <- strsplit(strd_t, ":")
  strd_t <- strd_t[[1]][2]
  strd_t <- strsplit(strd_t, "%")
  strd[i] <- as.numeric(strd_t) / 100
  
  # feature 8: submission average
  suba_t <- fighter_url %>% html_nodes(".b-list__box-list_margin-top .b-list__box-list-item_type_block:nth-child(5)") %>% html_text()
  suba_t <- gsub(" ", "", suba_t)
  suba_t <- gsub("\n", "", suba_t)
  suba_t <- strsplit(suba_t, ":")
  suba_t <- suba_t[[1]][2]
  suba[i] <- as.numeric(suba_t)
  
  # # stop the clock
  # print(proc.time() - ptm) 
}

# stop the clock
print(proc.time() - ptm) 

##     user   system  elapsed 
##  343.416    5.386 1494.005


Manipulate Data Frame

Create data frame and add column describing weightclass.

database <- data.frame(NAME = name, Weight = weightclass, REACH = reach, SLPM = slpm, SAPM = sapm, STRA = stra, STRD = strd, TD = td, TDA = tda, TDD = tdd, SUBA = suba )

data_add_wc <- mutate(database, WeightClass = ifelse(Weight == 115, "strawweight", ifelse(Weight == 125, "flyweight", ifelse(Weight == 135, "bantamweight", ifelse(Weight == 145, "featherweight", ifelse(Weight == 155, "lightweight", ifelse(Weight == 170, "welterweight", ifelse(Weight == 185, "middleweight", ifelse(Weight == 205, "lightheavyweight", ifelse(Weight > 205, "heavyweight", "catchweight"))))))))))

data_add_wc <- data_add_wc[c(1,2,12,3,4,5,6,7,8,9,10,11)]

The following fighters did not have their weight listed.

data_add_wc[is.na(data_add_wc$Weight), ]

##                    NAME Weight WeightClass REACH SLPM SAPM STRA STRD   TD  TDA
## 42          Juan Alcain     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 58          Levi Alford     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 83        Anthony Alves     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 133      Joey Armstrong     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 193         Yohan Banks     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 205     Chris Barnhizer     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 264          Dave Berry     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 288     Jason Blackford     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 301     Jeremy Boczulak     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 323       Chris Bostick     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 362    Drew Brokenshire     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 422      Goldman Butler     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 448     Thomas Campbell     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 467       Frank Caracci     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 558  Nikolajus Cilkinas     NA        <NA>    NA 0.00 5.88 0.00 0.16 0.00 0.00
## 581       Chris Coggins     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 707          Mike Davis     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 756         John Devine     NA        <NA>    NA 1.52 2.28 0.18 0.57 0.00 0.00
## 796        OJ Dominguez     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 809          John Dowdy     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 866           John Elam     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 981          Cody Floyd     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1033         Sam Fulton     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1107   Krishaun Gilmore     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1112      He-Man Gipson     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1164         Hugo Govea     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1243        Stoney Hale     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1254      Frank Hamaker     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1280       Luke Hartwig     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1296         Ryan Hayes     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1297       Gerric Hayes     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1327      Noe Hernandez     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1328      Joe Hernandez     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1400     Saeed Hosseini     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1443        Chris Inman     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1492        Josh Jarvis     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1517      Devin Johnson     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1609           Doug Kay     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1625    Aurelijus Kerpe     NA        <NA>    NA 1.26 8.21 0.16 0.31 0.00 0.00
## 1773         Jackie Lee     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1778          Imani Lee     NA        <NA>    NA 0.00 0.94 0.00 0.33 0.00 0.00
## 1800      Michael Lerma     NA        <NA>    NA 0.00 6.47 0.00 0.45 0.00 0.00
## 1809      Kyle Levinton     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1818          Sam Liera     NA        <NA>    NA 0.82 7.36 0.60 0.51 0.00 0.00
## 1829     Miguel Linares     NA        <NA>    NA 6.51 8.84 0.50 0.36 0.00 0.00
## 1909        Eric Magana     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1918       Lolohea Mahe     NA        <NA>    NA 1.71 6.92 0.29 0.40 2.44 0.40
## 1959    Cesar Marscucci     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1961           CJ Marsh     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 1967        Eric Martin     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2003   Francesco Maturi     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2016    Bobby McAndrews     NA        <NA>    NA 2.56 1.03 0.83 0.50 0.00 0.00
## 2028     Scott McDonald     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2039   Jack McGlaughlin     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2054    Charles McTorry     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2121      Mike Minniger     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2133 Felix Lee Mitchell     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2312        Jack Nilson     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2369    Masakatsu Okuda     NA        <NA>    NA 0.00 4.27 0.00 0.34 0.00 0.00
## 2471         Matt Pedro     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2485  Justin Pennington     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2500         Jose Perez     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2850     Adriano Santos     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2851       Paulo Santos     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 2956        Wes Shivers     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 3024         Eric Smith     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 3027         Adam Smith     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 3137   Gennaro Strangis     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 3194     Akihito Tanaka     NA        <NA>    NA 0.19 2.05 0.50 0.38 5.59 0.66
## 3210         J.T Taylor     NA        <NA>    NA 3.17 3.70 0.80 0.26 3.96 1.00
## 3257        Carl Toomey     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 3407     Jeremy Wallace     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 3483        Karl Willis     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 3497         Ray Wizard     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
## 3511       Chris Wright     NA        <NA>    NA 0.00 0.00 0.00 0.00 0.00 0.00
##       TDD SUBA
## 42   0.00  0.0
## 58   0.00  0.0
## 83   0.00  0.0
## 133  0.00  0.0
## 193  0.00  0.0
## 205  0.00  0.0
## 264  0.00  0.0
## 288  0.00  0.0
## 301  0.00  0.0
## 323  0.00  0.0
## 362  0.00  0.0
## 422  0.00  0.0
## 448  0.00  0.0
## 467  0.00  0.0
## 558  0.00  0.0
## 581  0.00  0.0
## 707  0.00  0.0
## 756  0.00  0.0
## 796  0.00  0.0
## 809  0.00  0.0
## 866  0.00  0.0
## 981  0.00  0.0
## 1033 0.00  0.0
## 1107 0.00  0.0
## 1112 0.00  0.0
## 1164 0.00  0.0
## 1243 0.00  0.0
## 1254 0.00  0.0
## 1280 0.00  0.0
## 1296 0.00  0.0
## 1297 0.00  0.0
## 1327 0.00  0.0
## 1328 0.00  0.0
## 1400 0.00  0.0
## 1443 0.00  0.0
## 1492 0.00  0.0
## 1517 0.00  0.0
## 1609 0.00  0.0
## 1625 0.00  0.0
## 1773 0.00  0.0
## 1778 0.00  0.0
## 1800 0.00  0.0
## 1809 0.00  0.0
## 1818 0.66  0.0
## 1829 0.00  0.0
## 1909 0.00  0.0
## 1918 0.00  0.0
## 1959 0.00  0.0
## 1961 0.00  0.0
## 1967 0.00  0.0
## 2003 0.00  0.0
## 2016 0.33  7.7
## 2028 0.00  0.0
## 2039 0.00  0.0
## 2054 0.00  0.0
## 2121 0.00  0.0
## 2133 0.00  0.0
## 2312 0.00  0.0
## 2369 0.00  4.3
## 2471 0.00  0.0
## 2485 0.00  0.0
## 2500 0.00  0.0
## 2850 0.00  0.0
## 2851 0.00  0.0
## 2956 0.00  0.0
## 3024 0.00  0.0
## 3027 0.00  0.0
## 3137 0.00  0.0
## 3194 0.00  0.0
## 3210 0.00  7.9
## 3257 0.00  0.0
## 3407 0.00  0.0
## 3483 0.00  0.0
## 3497 0.00  0.0
## 3511 0.00  0.0

Get rid of fighters with no weight listed.

fighter_stats <- data_add_wc[!is.na(data_add_wc$Weight), ]

The following fighters are listed at catchweight.

fighter_stats %>% filter(WeightClass == "catchweight")

##                       NAME Weight WeightClass REACH SLPM  SAPM STRA STRD   TD
## 1            Daniel Acacio    180 catchweight    NA 3.52  2.85 0.36 0.62 0.33
## 2            Wes Albritton    188 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 3              Royce Alger    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 4              Andre Amado    154 catchweight    NA 2.27  5.91 0.24 0.63 0.00
## 5        Bertrand Amoussou    190 catchweight    NA 6.75  2.01 0.39 0.83 0.00
## 6          Lowell Anderson    160 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 7             Alex Andrade    200 catchweight    NA 0.20  2.60 0.36 0.53 0.00
## 8           Jermaine Andre    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 9              Shinya Aoki    154 catchweight    NA 0.97  1.25 0.58 0.58 2.54
## 10           Gilles Arsene    190 catchweight    NA 0.06  2.45 0.10 0.32 0.00
## 11            Luiz Azeredo    154 catchweight    NA 2.16  2.76 0.39 0.57 1.07
## 12         Luciano Azevedo    161 catchweight    NA 0.76  1.97 0.45 0.27 2.28
## 13           Karla Benitez    113 catchweight    NA 0.00  2.40 0.00 0.57 0.00
## 14           Dieusel Berto    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 15         Jerry Bohlander    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 16            Kotetsu Boku    154 catchweight    NA 2.47  2.80 0.42 0.53 0.00
## 17    Gregory Bouchelaghem    183 catchweight    NA 0.27  1.53 0.21 0.36 0.00
## 18   Ebenezer Fontes Braga    199 catchweight    NA 2.42  0.42 0.50 0.71 0.00
## 19           Dominic Brown    190 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 20       Murilo Bustamante    183 catchweight    NA 1.33  1.90 0.32 0.60 2.46
## 21             Todd Butler    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 22          Bruno Carvalho    154 catchweight    NA 0.60  0.93 0.45 0.53 0.00
## 23         Donnie Chappell    178 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 24             RJ Clifford    160 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 25             Abel Cullum    139 catchweight    NA 1.82  1.23 0.40 0.46 4.01
## 26          Sean Daugherty    175 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 27           Jason DeLucia    190 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 28           Thomas Diagne    154 catchweight    NA 4.53  4.53 0.48 0.63 2.00
## 29        Eldo Xavier Dias    180 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 30              David Dodd    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 31             Ross Ebanez    154 catchweight    NA 0.74  0.74 0.50 0.62 3.70
## 32              Kenny Ento    192 catchweight    NA 8.41  0.00 0.79 1.00 5.49
## 33             Won Jin Eoh    160 catchweight    NA 3.74  3.58 0.44 0.46 0.00
## 34               Josh Epps    130 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 35         Bobby Escalante    130 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 36             Fred Ettish    180 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 37       Bibiano Fernandes    139 catchweight    NA 2.91  2.02 0.40 0.72 3.97
## 38              Ron Fields    200 catchweight    NA 0.33  2.64 0.33 0.11 0.00
## 39              Brady Fink    183 catchweight    NA 1.69  1.69 0.41 0.61 3.63
## 40            Luiz Firmino    154 catchweight    NA 1.23  1.22 0.50 0.51 3.86
## 41             Clay French    161 catchweight    NA 1.52  1.27 0.50 0.16 0.00
## 42            Megumi Fujii    113 catchweight    NA 2.40  0.00 0.42 1.00 0.00
## 43        Keisuke Fujiwara    139 catchweight    NA 0.73  1.20 0.44 0.47 0.00
## 44         Katsuaki Furuki    168 catchweight    NA 0.27  2.67 0.10 0.39 0.00
## 45            James Gabert    178 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 46            Andre Galvao    168 catchweight    NA 2.34  1.56 0.52 0.58 2.02
## 47           Darrel Gholar    194 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 48             Kultar Gill    154 catchweight    NA 1.14  0.40 0.50 0.41 1.71
## 49            Bob Gilstrap    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 50            Royce Gracie    175 catchweight    NA 0.88  1.13 0.41 0.37 0.00
## 51          Crosley Gracie    190 catchweight    NA 1.69  1.54 0.37 0.60 3.46
## 52            Ralph Gracie    183 catchweight    NA 0.86  1.72 0.37 0.31 0.00
## 53          Rodrigo Gracie    183 catchweight    NA 1.34  0.86 0.51 0.46 1.49
## 54           Royler Gracie    150 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 55             Ryan Gracie    200 catchweight    NA 0.82  0.50 0.61 0.40 2.83
## 56            Cesar Gracie    181 catchweight    NA 0.00 17.14 0.00 0.50 0.00
## 57           Keith Hackney    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 58               Mark Hall    190 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 59          Joachim Hansen    150 catchweight    NA 2.01  2.04 0.43 0.58 2.21
## 60              Daiki Hata    139 catchweight    NA 1.44  1.42 0.39 0.55 0.67
## 61      Kuniyoshi Hironaka    168 catchweight    70 1.98  3.01 0.40 0.54 1.91
## 62              David Hood    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 63         Minoki Ichihara    178 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 64          Seichi Ikemoto    168 catchweight    NA 2.59  3.74 0.32 0.57 1.23
## 65        Masakazu Imanari    139 catchweight    NA 0.55  1.74 0.30 0.57 0.00
## 66              Egan Inoue    190 catchweight    NA 1.66  3.31 0.36 0.57 0.00
## 67           Katsuya Inoue    168 catchweight    NA 3.41 12.89 0.24 0.51 0.00
## 68           Jason Ireland    161 catchweight    NA 1.20  2.07 0.25 0.51 3.59
## 69        Mitsuhiro Ishida    154 catchweight    NA 1.46  1.13 0.41 0.61 4.76
## 70           Kevin Jackson    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 71           Art Jimmerson    196 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 72         Deshaun Johnson    167 catchweight    NA 2.27  6.67 0.41 0.43 0.00
## 73              Paul Jones    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 74             Chris Jones    149 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 75            Trevin Jones    140 catchweight    70 3.72  9.45 0.52 0.29 2.15
## 76           Bu-Kyung Jung    154 catchweight    NA 0.63  1.85 0.36 0.56 1.10
## 77          Young Sam Jung    139 catchweight    NA 0.53  2.79 0.09 0.63 0.00
## 78             Geza Kalman    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 79      Hiromitsu Kanehara    200 catchweight    NA 0.76  4.39 0.22 0.40 0.00
## 80              Ken Kaneko    161 catchweight    NA 0.00  0.94 0.00 0.42 0.00
## 81            Casey Kenney    140 catchweight    68 4.79  4.07 0.43 0.59 1.25
## 82            Sanae Kikuta    200 catchweight    NA 0.70  0.90 0.45 0.52 1.60
## 83             Dae Won Kim    180 catchweight    NA 1.75  2.51 0.32 0.36 3.43
## 84            Jong Won Kim    139 catchweight    NA 0.84  3.28 0.15 0.63 2.81
## 85            Jong Man Kim    139 catchweight    NA 1.33  3.00 0.21 0.60 0.00
## 86          Satoru Kitaoka    154 catchweight    NA 0.68  2.15 0.33 0.45 0.62
## 87              Yuki Kondo    183 catchweight    NA 1.14  2.57 0.42 0.51 0.76
## 88     Christophe Leninger    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 89              John Lober    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 90          Federico Lopez    139 catchweight    NA 1.78  5.35 0.23 0.30 0.00
## 91           Yoshiro Maeda    139 catchweight    68 2.36  2.55 0.33 0.63 2.93
## 92             Bill Mahood    200 catchweight    NA 1.54  3.59 0.85 0.17 0.00
## 93           Aliev Makhmud    195 catchweight    NA 1.12  2.24 0.30 0.36 2.10
## 94            Carl Malenko    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 95       Melchor Manibusan    154 catchweight    NA 1.58  5.79 0.54 0.15 0.00
## 96          Rainy Martinez    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 97          Shoji Maruyama    139 catchweight    NA 1.40  0.27 0.63 0.55 0.00
## 98          Daijiro Matsui    200 catchweight    NA 0.84  1.69 0.45 0.55 1.83
## 99             Todd Medina    193 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 100           Jason Medina    180 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 101             Guy Mezger    200 catchweight    NA 2.30  1.36 0.32 0.72 0.39
## 102         Ikuhisa Minowa    181 catchweight    NA 0.88  1.66 0.40 0.49 1.82
## 103           Kazuo Misaki    183 catchweight    NA 2.85  2.74 0.40 0.63 0.72
## 104          Jonathan  Mix    168 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 105       Tomoya Miyashita    139 catchweight    NA 1.67  0.93 0.65 0.33 4.00
## 106        Kazuyuki Miyata    139 catchweight    NA 2.04  1.82 0.52 0.63 4.31
## 107        Motoki Miyazawa    168 catchweight    NA 1.23  3.91 0.28 0.61 0.00
## 108        Rudyard Moncayo    195 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 109         Hidetaka Monma    168 catchweight    NA 1.67  9.76 0.25 0.34 0.00
## 110            Joe Moreira    195 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 111              Juan Mott    190 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 112      Flavio Luiz Moura    183 catchweight    NA 0.67  0.00 0.16 0.00 0.00
## 113         Ryuichi Murata    183 catchweight    NA 0.84  1.89 0.36 0.50 4.74
## 114           Ho Bae Myeon    168 catchweight    NA 3.16  3.16 0.16 0.83 0.00
## 115       Katsuhiko Nagata    154 catchweight    NA 1.05  1.50 0.19 0.63 0.98
## 116       Daisuke Nakamura    154 catchweight    NA 0.94  1.38 0.30 0.61 0.46
## 117         Akiyo Nishiura    139 catchweight    NA 1.59  1.26 0.57 0.57 0.00
## 118           Takahiro Oba    200 catchweight    NA 0.23  1.82 0.25 0.69 0.00
## 119           Kazuki Okubo    175 catchweight    NA 1.53  1.97 0.38 0.46 0.51
## 120            Andy Ologun    154 catchweight    NA 2.36  0.32 0.57 0.85 0.68
## 121        Takafumi Otsuka    139 catchweight    NA 1.29  2.12 0.27 0.67 1.64
## 122       Artur Oumakhanov    154 catchweight    NA 1.20  1.67 0.33 0.82 3.00
## 123         Tulio Palhares    180 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 124        Stephen Palling    143 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 125           Won Sik Park    154 catchweight    NA 2.60  2.20 0.43 0.47 0.00
## 126       Onassis Parungao    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 127           Tony Petarra    196 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 128              Gary Quan    143 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 129            Andrew Ramm    160 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 130              Raou Raou    195 catchweight    NA 2.01  6.75 0.16 0.60 0.00
## 131         Keenan Raymond    165 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 132            John Renken    190 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 133          Vitor Ribeiro    154 catchweight    NA 1.00  1.95 0.28 0.48 1.58
## 134            Rafael Rios    150 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 135          Shannon Ritch    190 catchweight    NA 1.00  6.00 1.00 0.50 0.00
## 136 Nicdali Rivera-Calanoc    105 catchweight    NA 1.82  2.42 0.20 0.78 0.00
## 137           Joey Roberts    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 138          Wataru Sakata    195 catchweight    NA 1.11  2.08 0.61 0.31 0.00
## 139         Hayato Sakurai    168 catchweight    NA 2.45  1.94 0.49 0.59 1.87
## 140          Ryuta Sakurai    183 catchweight    NA 1.80  3.44 0.48 0.58 0.52
## 141          Raul Sandoval    130 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 142             Nick Sanzo    190 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 143         Kyosuke Sasaki    183 catchweight    NA 0.33  0.93 0.45 0.46 0.00
## 144           Mark Schultz    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 145      Katsuyori Shibata    168 catchweight    NA 2.06  2.40 0.35 0.53 0.49
## 146            Yuya Shirai    168 catchweight    NA 1.02  4.07 1.00 0.55 0.00
## 147            Akira Shoji    195 catchweight    NA 1.03  2.63 0.34 0.53 1.79
## 148             Jean Silva    160 catchweight    NA 0.73  2.93 0.22 0.52 0.00
## 149        Yokthai Sithoar    143 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 150              Joe Slick    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 151     Kestutis Smirnovas    200 catchweight    NA 4.95  5.05 0.52 0.54 1.55
## 152            Josh Stuart    160 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 153          Masanori Suda    183 catchweight    NA 1.80  1.20 0.50 0.63 0.00
## 154          Daisuke Sugie    160 catchweight    NA 0.00  0.22 0.00 0.80 3.27
## 155          Naho Sugiyuma    105 catchweight    NA 2.59  2.45 0.48 0.71 2.05
## 156            Amar Suloev    183 catchweight    NA 1.98  2.19 0.37 0.70 0.27
## 157          Eugenio Tadeu    160 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 158      Yoshiki Takahashi    199 catchweight    NA 2.26  6.47 0.51 0.44 0.00
## 159         Yoko Takahashi    150 catchweight    NA 5.11  8.78 0.54 0.48 0.00
## 160        Hiroyuki Takaya    139 catchweight    NA 3.18  3.16 0.33 0.60 0.90
## 161        Minoru Toyonaga    195 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 162          Damien Trites    165 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 163           Ryuki Ueyama    180 catchweight    NA 0.13  1.40 0.21 0.46 0.50
## 164        Jeremy Umphries    160 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 165              Kengo Ura    165 catchweight    NA 1.05  2.38 0.37 0.48 2.85
## 166    Egidijus Valavicius    200 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 167          Ron van Clief    190 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 168            Yuri Vaulin    197 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 169       Jerrel Venetiaan    195 catchweight    NA 0.81  1.51 0.33 0.67 0.00
## 170         Ernie Verdicia    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 171             Idris Wasi    186 catchweight    NA 0.40  3.53 0.31 0.46 0.00
## 172      Kazuhisa Watanabe    139 catchweight    NA 0.62  0.94 0.50 0.00 0.00
## 173            Steve White    175 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 174             Xue Do Won    165 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 175         Nathaniel Wood    140 catchweight    69 6.28  4.36 0.46 0.53 1.29
## 176              JW Wright    130 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 177       Atsushi Yamamoto    139 catchweight    NA 1.97  1.27 0.39 0.70 1.12
## 178       Takeshi Yamazaki    139 catchweight    NA 0.57  1.57 0.25 0.47 4.50
## 179         Masutatsu Yano    198 catchweight    NA 0.00  0.00 0.00 0.00 0.00
## 180         Yoshiaki Yatsu    165 catchweight    NA 0.00  5.57 0.00 0.48 0.00
## 181        Kazunori Yokota    154 catchweight    NA 0.67  1.13 0.31 0.57 0.00
## 182          Igor Zinoviev    199 catchweight    NA 0.00  0.00 0.00 0.00 0.00
##      TDA  TDD SUBA
## 1   0.20 0.81  0.0
## 2   0.00 0.00  0.0
## 3   0.00 0.00  0.0
## 4   0.00 0.20  0.0
## 5   0.00 0.00  0.0
## 6   0.00 0.00  0.0
## 7   0.00 0.25  0.8
## 8   0.00 0.00  0.0
## 9   0.41 0.60  4.0
## 10  0.00 0.00  0.0
## 11  0.50 0.45  0.3
## 12  0.11 0.00  0.0
## 13  0.00 1.00  0.0
## 14  0.00 0.00  0.0
## 15  0.00 0.00  0.0
## 16  0.00 0.00  0.0
## 17  0.00 0.50  0.0
## 18  0.00 0.90  0.6
## 19  0.00 0.00  0.0
## 20  0.33 0.54  1.2
## 21  0.00 0.00  0.0
## 22  0.00 0.66  4.0
## 23  0.00 0.00  0.0
## 24  0.00 0.00  0.0
## 25  0.52 0.00  2.8
## 26  0.00 0.00  0.0
## 27  0.00 0.00  0.0
## 28  1.00 0.66  0.0
## 29  0.00 0.00  0.0
## 30  0.00 0.00  0.0
## 31  1.00 0.00  0.0
## 32  1.00 0.00 11.0
## 33  0.00 0.50  0.0
## 34  0.00 0.00  0.0
## 35  0.00 0.00  0.0
## 36  0.00 0.00  0.0
## 37  0.53 0.77  0.6
## 38  0.00 0.00  0.0
## 39  0.25 0.00  3.6
## 40  0.45 0.20  0.9
## 41  0.00 1.00  0.0
## 42  0.00 0.00 12.0
## 43  0.00 0.23  2.5
## 44  0.00 0.00  3.0
## 45  0.00 0.00  0.0
## 46  0.27 0.00  2.8
## 47  0.00 0.00  0.0
## 48  0.66 0.38  0.0
## 49  0.00 0.00  0.0
## 50  0.00 0.66  0.8
## 51  0.85 0.50  0.6
## 52  0.00 0.25  4.0
## 53  0.50 0.75  0.4
## 54  0.00 0.00  0.0
## 55  0.75 0.25  0.9
## 56  0.00 0.00  0.0
## 57  0.00 0.00  0.0
## 58  0.00 0.00  0.0
## 59  0.58 0.34  1.9
## 60  1.00 0.35  0.7
## 61  0.30 0.25  0.6
## 62  0.00 0.00  0.0
## 63  0.00 0.00  0.0
## 64  0.26 0.60  0.0
## 65  0.00 0.00  2.1
## 66  0.00 0.00  0.0
## 67  0.00 0.66  0.0
## 68  0.75 0.00  1.2
## 69  0.53 0.33  0.7
## 70  0.00 0.00  0.0
## 71  0.00 0.00  0.0
## 72  0.00 0.00  0.0
## 73  0.00 0.00  0.0
## 74  0.00 0.00  0.0
## 75  0.50 0.00  0.0
## 76  0.75 0.00  1.5
## 77  0.00 0.00  2.0
## 78  0.00 0.00  0.0
## 79  0.00 0.40  0.4
## 80  0.00 0.00  3.5
## 81  0.42 0.56  0.6
## 82  0.63 0.25  1.8
## 83  0.42 0.00  0.0
## 84  1.00 0.00  0.0
## 85  0.00 0.00  0.0
## 86  0.10 0.27  2.1
## 87  0.41 0.37  0.5
## 88  0.00 0.00  0.0
## 89  0.00 0.00  0.0
## 90  0.00 0.00  0.0
## 91  0.51 0.50  0.7
## 92  0.00 0.00  3.9
## 93  0.50 0.00  0.0
## 94  0.00 0.00  0.0
## 95  0.00 0.00  0.0
## 96  0.00 0.00  0.0
## 97  0.00 0.54  0.0
## 98  0.30 0.43  0.4
## 99  0.00 0.00  0.0
## 100 0.00 0.00  0.0
## 101 0.50 0.88  0.0
## 102 0.41 0.05  1.9
## 103 0.38 0.51  0.6
## 104 0.00 0.00  0.0
## 105 0.80 0.00  2.0
## 106 0.46 0.68  0.0
## 107 0.00 0.00  0.0
## 108 0.00 0.00  0.0
## 109 0.00 0.00  0.0
## 110 0.00 0.00  0.0
## 111 0.00 0.00  0.0
## 112 0.00 0.00  0.0
## 113 0.50 1.00  3.2
## 114 0.00 0.00  0.0
## 115 0.28 0.28  0.0
## 116 0.40 0.30  3.6
## 117 0.00 0.52  0.3
## 118 0.00 0.00  0.0
## 119 0.25 0.36  2.0
## 120 1.00 0.80  0.0
## 121 0.27 0.65  0.0
## 122 0.75 0.33  0.0
## 123 0.00 0.00  0.0
## 124 0.00 0.00  0.0
## 125 0.00 0.00  0.0
## 126 0.00 0.00  0.0
## 127 0.00 0.00  0.0
## 128 0.00 0.00  0.0
## 129 0.00 0.00  0.0
## 130 0.00 0.00  0.0
## 131 0.00 0.00  0.0
## 132 0.00 0.00  0.0
## 133 0.26 1.00  1.2
## 134 0.00 0.00  0.0
## 135 0.00 0.00  0.0
## 136 0.00 0.00  0.0
## 137 0.00 0.00  0.0
## 138 0.00 0.00  0.0
## 139 0.69 0.56  0.3
## 140 1.00 0.36  1.6
## 141 0.00 0.00  0.0
## 142 0.00 0.00  0.0
## 143 0.00 0.00  0.0
## 144 0.00 0.00  0.0
## 145 0.50 0.53  0.7
## 146 0.00 0.00  0.0
## 147 0.73 0.82  0.4
## 148 0.00 0.00  0.0
## 149 0.00 0.00  0.0
## 150 0.00 0.00  0.0
## 151 0.50 1.00  1.6
## 152 0.00 0.00  0.0
## 153 0.00 0.60  0.0
## 154 0.50 0.00  3.3
## 155 1.00 0.66  0.0
## 156 1.00 0.88  0.3
## 157 0.00 0.00  0.0
## 158 0.00 0.66  2.3
## 159 0.00 0.00  0.0
## 160 0.45 0.66  0.0
## 161 0.00 0.00  0.0
## 162 0.00 0.00  0.0
## 163 1.00 0.00  1.5
## 164 0.00 0.00  0.0
## 165 0.28 0.50  1.4
## 166 0.00 0.00  0.0
## 167 0.00 0.00  0.0
## 168 0.00 0.00  0.0
## 169 0.00 0.60  0.0
## 170 0.00 0.00  0.0
## 171 0.00 0.20  0.0
## 172 0.00 0.14  0.0
## 173 0.00 0.00  0.0
## 174 0.00 0.00  0.0
## 175 0.46 0.75  0.9
## 176 0.00 0.00  0.0
## 177 0.33 1.00  0.0
## 178 0.50 1.00  1.0
## 179 0.00 0.00  0.0
## 180 0.00 0.00  0.0
## 181 0.00 0.00  0.0
## 182 0.00 0.00  0.0

Examine data frame.

summary(fighter_stats)

##      NAME               Weight      WeightClass            REACH      
##  Length:3515        Min.   :105.0   Length:3515        Min.   :58.00  
##  Class :character   1st Qu.:145.0   Class :character   1st Qu.:69.00  
##  Mode  :character   Median :170.0   Mode  :character   Median :72.00  
##                     Mean   :173.1                      Mean   :71.84  
##                     3rd Qu.:185.0                      3rd Qu.:75.00  
##                     Max.   :770.0                      Max.   :84.00  
##                                                        NA's   :1837   
##       SLPM             SAPM             STRA             STRD       
##  Min.   : 0.000   Min.   : 0.000   Min.   :0.0000   Min.   :0.0000  
##  1st Qu.: 0.800   1st Qu.: 1.500   1st Qu.:0.2600   1st Qu.:0.3600  
##  Median : 2.210   Median : 2.790   Median :0.4000   Median :0.5000  
##  Mean   : 2.327   Mean   : 3.027   Mean   :0.3509   Mean   :0.4308  
##  3rd Qu.: 3.460   3rd Qu.: 4.020   3rd Qu.:0.4800   3rd Qu.:0.5800  
##  Max.   :17.650   Max.   :52.500   Max.   :1.0000   Max.   :1.0000  
##                                                                     
##        TD              TDA              TDD             SUBA        
##  Min.   : 0.000   Min.   :0.0000   Min.   :0.000   Min.   : 0.0000  
##  1st Qu.: 0.000   1st Qu.:0.0000   1st Qu.:0.000   1st Qu.: 0.0000  
##  Median : 0.560   Median :0.2100   Median :0.410   Median : 0.0000  
##  Mean   : 1.231   Mean   :0.2641   Mean   :0.385   Mean   : 0.6548  
##  3rd Qu.: 1.930   3rd Qu.:0.4500   3rd Qu.:0.660   3rd Qu.: 0.8000  
##  Max.   :32.140   Max.   :1.0000   Max.   :1.000   Max.   :29.0000  
## 


Save data.

save(fighter_stats, file ="./Datasets/fighter_stats.RData")