Import your data

data <- read_excel("../01_module4/data/myData.xlsx")

data$baker
##   [1] "Annetha"    "David"      "Edd"        "Jasminder"  "Jonathan"  
##   [6] "Lea"        "Louise"     "Mark"       "Miranda"    "Ruth"      
##  [11] "Ben"        "Holly"      "Ian"        "Janet"      "Jason"     
##  [16] "Joanne"     "Keith"      "Mary-Anne"  "Robert"     "Simon"     
##  [21] "Urvashi"    "Yasmin"     "Brendan"    "Cathryn"    "Danny"     
##  [26] "James"      "John"       "Manisha"    "Natasha"    "Peter"     
##  [31] "Ryan"       "Sarah-Jane" "Stuart"     "Victoria"   "Ali"       
##  [36] "Beca"       "Christine"  "Deborah"    "Frances"    "Glenn"     
##  [41] "Howard"     "Kimberley"  "Lucy"       "Mark"       "Robert"    
##  [46] "Ruby"       "Toby"       "Chetna"     "Claire"     "Diana"     
##  [51] "Enwezor"    "Iain"       "Jordan"     "Kate"       "Luis"      
##  [56] "Martha"     "Nancy"      "Norman"     "Richard"    "Alvin"     
##  [61] "Dorret"     "Flora"      "Ian"        "Marie"      "Mat"       
##  [66] "Nadiya"     "Paul"       "Sandy"      "Stu"        "Tamal"     
##  [71] "Ugnė"       "Andrew"     "Benjamina"  "Candice"    "Jane"      
##  [76] "Kate"       "Lee"        "Louise"     "Michael"    "Rav"       
##  [81] "Selasi"     "Tom"        "Val"        "Chris"      "Flo"       
##  [86] "James"      "Julia"      "Kate"       "Liam"       "Peter"     
##  [91] "Sophie"     "Stacey"     "Steven"     "Tom"        "Yan"       
##  [96] "Antony"     "Briony"     "Dan"        "Imelda"     "Jon"       
## [101] "Karen"      "Kim-Joy"    "Luke"       "Manon"      "Rahul"     
## [106] "Ruby"       "Terry"      "Alice"      "Amelia"     "Dan"       
## [111] "David"      "Helena"     "Henry"      "Jamie"      "Michael"   
## [116] "Michelle"   "Phil"       "Priya"      "Rosie"      "Steph"

Chapter 14

Tools

Detect matches

str_detect(data$baker, "e$")
##   [1] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##  [13] FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##  [25] FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE
##  [37]  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [49]  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##  [61] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [73] FALSE  TRUE  TRUE  TRUE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE
##  [85] FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE
##  [97] FALSE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE
## [109] FALSE FALSE FALSE FALSE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE
sum(str_detect(data$baker, "^M"))
## [1] 12
str_detect(data$technical_winner, "1")
##   [1] FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE  TRUE FALSE
##  [13] FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
##  [25] FALSE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE FALSE  TRUE
##  [37]  TRUE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE  TRUE FALSE FALSE  TRUE
##  [49] FALSE FALSE FALSE FALSE FALSE  TRUE  TRUE FALSE FALSE FALSE FALSE FALSE
##  [61]  TRUE  TRUE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE FALSE  TRUE FALSE
##  [73]  TRUE  TRUE FALSE  TRUE FALSE FALSE FALSE FALSE  TRUE  TRUE  TRUE FALSE
##  [85] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE FALSE
##  [97] FALSE  TRUE FALSE  TRUE FALSE  TRUE FALSE FALSE  TRUE FALSE  TRUE FALSE
## [109] FALSE FALSE FALSE  TRUE FALSE FALSE FALSE FALSE FALSE FALSE FALSE  TRUE
sum(str_detect(data$technical_winner, "1"))
## [1] 35

Extract matches

data %>%
    mutate(col_Mnames = str_extract(baker, "^M")) %>%
    select(baker, col_Mnames) %>%
    filter(!is.na(col_Mnames))
## # A tibble: 12 × 2
##    baker     col_Mnames
##    <chr>     <chr>     
##  1 Mark      M         
##  2 Miranda   M         
##  3 Mary-Anne M         
##  4 Manisha   M         
##  5 Mark      M         
##  6 Martha    M         
##  7 Marie     M         
##  8 Mat       M         
##  9 Michael   M         
## 10 Manon     M         
## 11 Michael   M         
## 12 Michelle  M

Replacing matches

data %>%
    mutate(col_winner = str_replace(series_winner, "1", "winner")) %>%
    select(series_winner, col_winner, baker)
## # A tibble: 120 × 3
##    series_winner col_winner baker    
##            <dbl> <chr>      <chr>    
##  1             0 0          Annetha  
##  2             0 0          David    
##  3             1 winner     Edd      
##  4             0 0          Jasminder
##  5             0 0          Jonathan 
##  6             0 0          Lea      
##  7             0 0          Louise   
##  8             0 0          Mark     
##  9             0 0          Miranda  
## 10             0 0          Ruth     
## # ℹ 110 more rows