Import your data

myData <- read_excel("../00_data/myData_charts.xlsx")
myData
## # A tibble: 10,879 × 8
##    team          team_name  year   total   home   away  week weekly_attendance
##    <chr>         <chr>     <dbl>   <dbl>  <dbl>  <dbl> <dbl> <chr>            
##  1 San Francisco 49ers      2000 1057954 541964 515990     1 54626            
##  2 San Francisco 49ers      2000 1057954 541964 515990     2 66879            
##  3 San Francisco 49ers      2000 1057954 541964 515990     3 65945            
##  4 San Francisco 49ers      2000 1057954 541964 515990     4 64127            
##  5 San Francisco 49ers      2000 1057954 541964 515990     5 66985            
##  6 San Francisco 49ers      2000 1057954 541964 515990     6 68344            
##  7 San Francisco 49ers      2000 1057954 541964 515990     7 59870            
##  8 San Francisco 49ers      2000 1057954 541964 515990     8 73169            
##  9 San Francisco 49ers      2000 1057954 541964 515990     9 68109            
## 10 San Francisco 49ers      2000 1057954 541964 515990    10 64900            
## # … with 10,869 more rows

Chapter 14

Tools

Detect matches

head(myData$team_name, 50)
##  [1] "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers"
## [10] "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers"
## [19] "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers"
## [28] "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers"
## [37] "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers" "49ers"
## [46] "49ers" "49ers" "49ers" "49ers" "49ers"
head(str_detect(myData$team_name, "49ers"), 385)
##   [1]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [13]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [25]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [37]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [49]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [61]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [73]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [85]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
##  [97]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [109]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [121]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [133]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [145]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [157]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [169]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [181]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [193]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [205]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [217]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [229]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [241]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [253]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [265]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [277]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [289]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [301]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [313]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [325]  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE  TRUE
## [337]  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [349] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [361] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [373] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [385] FALSE
sum(str_detect(myData$team_name, "49ers"))
## [1] 341
myData %>%
    summarise(num_49ers = sum(str_detect(team_name, "49ers")))
## # A tibble: 1 × 1
##   num_49ers
##       <int>
## 1       341

Extract matches

myData %>%
    mutate(col_team_name = str_extract(team_name, "49ers")) %>%
    select(team_name, col_team_name) %>%
    filter(!is.na(col_team_name))
## # A tibble: 341 × 2
##    team_name col_team_name
##    <chr>     <chr>        
##  1 49ers     49ers        
##  2 49ers     49ers        
##  3 49ers     49ers        
##  4 49ers     49ers        
##  5 49ers     49ers        
##  6 49ers     49ers        
##  7 49ers     49ers        
##  8 49ers     49ers        
##  9 49ers     49ers        
## 10 49ers     49ers        
## # … with 331 more rows

Replacing matches

myData %>%
    mutate(col_boston = str_replace(team_name, "49ers", "Boston")) %>%
    select(team_name, col_boston)
## # A tibble: 10,879 × 2
##    team_name col_boston
##    <chr>     <chr>     
##  1 49ers     Boston    
##  2 49ers     Boston    
##  3 49ers     Boston    
##  4 49ers     Boston    
##  5 49ers     Boston    
##  6 49ers     Boston    
##  7 49ers     Boston    
##  8 49ers     Boston    
##  9 49ers     Boston    
## 10 49ers     Boston    
## # … with 10,869 more rows