Import your data

myData <- read_excel("../00_data/myData.xlsx")
myData
## # A tibble: 30 × 8
##    team       team_name  year   total   home   away  week weekly_attendance
##    <chr>      <chr>     <dbl>   <dbl>  <dbl>  <dbl> <dbl> <chr>            
##  1 Arizona    Cardinals  2000  893926 387475 506451     1 77434            
##  2 Atlanta    Falcons    2000  964579 422814 541765     1 54626            
##  3 Baltimore  Ravens     2000 1062373 551695 510678     1 55049            
##  4 Buffalo    Bills      2000 1098587 560695 537892     1 72492            
##  5 Carolina   Panthers   2000 1095192 583489 511703     1 80257            
##  6 Chicago    Bears      2000 1080684 535552 545132     1 64104            
##  7 Cincinnati Bengals    2000  967434 469992 497442     1 NA               
##  8 Cleveland  Browns     2000 1057139 581544 475595     1 72418            
##  9 Dallas     Cowboys    2000 1075470 504360 571110     1 62872            
## 10 Denver     Broncos    2000 1140030 604042 535988     1 65956            
## # ℹ 20 more rows

Chapter 14

Tools

Detect matches

head(myData$team_name, 50)
##  [1] "Cardinals" "Falcons"   "Ravens"    "Bills"     "Panthers"  "Bears"    
##  [7] "Bengals"   "Browns"    "Cowboys"   "Broncos"   "Lions"     "Packers"  
## [13] "Colts"     "Jaguars"   "Chiefs"    "Dolphins"  "Vikings"   "Patriots" 
## [19] "Saints"    "Giants"    "Jets"      "Raiders"   "Eagles"    "Steelers" 
## [25] "Chargers"  "49ers"     "Seahawks"  "Titans"    "Titans"    "Redskins"
head(str_detect(myData$team_name, "49ers"), 385)
##  [1] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [13] FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
## [25] FALSE  TRUE FALSE FALSE FALSE FALSE
sum(str_detect(myData$team_name, "49ers"))
## [1] 1
myData %>%
    summarise(num_49ers = sum(str_detect(team_name, "49ers")))
## # A tibble: 1 × 1
##   num_49ers
##       <int>
## 1         1

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: 1 × 2
##   team_name col_team_name
##   <chr>     <chr>        
## 1 49ers     49ers

Replacing matches

myData %>%
    mutate(col_boston = str_replace(team_name, "49ers", "Boston")) %>%
    select(team_name, col_boston)
## # A tibble: 30 × 2
##    team_name col_boston
##    <chr>     <chr>     
##  1 Cardinals Cardinals 
##  2 Falcons   Falcons   
##  3 Ravens    Ravens    
##  4 Bills     Bills     
##  5 Panthers  Panthers  
##  6 Bears     Bears     
##  7 Bengals   Bengals   
##  8 Browns    Browns    
##  9 Cowboys   Cowboys   
## 10 Broncos   Broncos   
## # ℹ 20 more rows