Environment Setup

## -- Attaching packages ---------------------------------------------------- tidyverse 1.2.1 --
## v ggplot2 2.2.1     v purrr   0.2.4
## v tibble  1.4.2     v dplyr   0.7.4
## v tidyr   0.8.0     v stringr 1.2.0
## v readr   1.1.1     v forcats 0.2.0
## -- Conflicts ------------------------------------------------------- tidyverse_conflicts() --
## x dplyr::filter() masks stats::filter()
## x dplyr::lag()    masks stats::lag()
## 
## Attaching package: 'magrittr'
## The following object is masked from 'package:purrr':
## 
##     set_names
## The following object is masked from 'package:tidyr':
## 
##     extract
## [1] "Moe Szyslak"          "Burns, C. Montgomery" "Rev. Timothy Lovejoy"
## [4] "Ned Flanders"         "Simpson, Homer"       "Dr. Julius Hibbert"
## [1] "555-1239"       "(636) 555-0113" "555-6542"       "555 8904"      
## [5] "636-555-3226"   "5553642"

1.) Rearrage the vector so all the elements conform to first_name last_name.

# remove salutations, prefixes, swap positions, and trim
swappedNames <- names %>%
  str_replace("[A-z]+\\.\\s", " ") %>%
  str_replace("(\\w+),\\s+(\\w+)", "\\2 \\1") %>%
  str_trim %>%
  print
## [1] "Moe Szyslak"      "Montgomery Burns" "Timothy Lovejoy" 
## [4] "Ned Flanders"     "Homer Simpson"    "Julius Hibbert"
# put data in data frame for easier viewing
df <- data_frame(swappedNames = swappedNames, phone = phone) %>%
  print
## # A tibble: 6 x 2
##   swappedNames     phone         
##   <chr>            <chr>         
## 1 Moe Szyslak      555-1239      
## 2 Montgomery Burns (636) 555-0113
## 3 Timothy Lovejoy  555-6542      
## 4 Ned Flanders     555 8904      
## 5 Homer Simpson    636-555-3226  
## 6 Julius Hibbert   5553642

2.) Logical vector indicating whether a character has a title

# detect titles
title <- names %>%
  str_detect("[A-z]{2,3}\\.\\s*")

# put names and true/false vector in data frame
titles <- data_frame(names = names, titles = title) %>%
  print
## # A tibble: 6 x 2
##   names                titles
##   <chr>                <lgl> 
## 1 Moe Szyslak          F     
## 2 Burns, C. Montgomery F     
## 3 Rev. Timothy Lovejoy T     
## 4 Ned Flanders         F     
## 5 Simpson, Homer       F     
## 6 Dr. Julius Hibbert   T

3.) Logical vector indicating whether a character has a second name

# detect second name
twoNames <- names %>%
  str_detect("[A-Z]{1}\\.")

# put names and true/false vector in data frame
twoNameDf <- data_frame(names = names, twoNames = twoNames) %>%
  print
## # A tibble: 6 x 2
##   names                twoNames
##   <chr>                <lgl>   
## 1 Moe Szyslak          F       
## 2 Burns, C. Montgomery T       
## 3 Rev. Timothy Lovejoy F       
## 4 Ned Flanders         F       
## 5 Simpson, Homer       F       
## 6 Dr. Julius Hibbert   F

4.) Describe the types of strings that conform to the following regular expressions and construct an example that is matched by the regular expression.

qs <- c("4a", "4b", "4c", "4d", "4e")
test_str <- c("4$",
              "baron curtin bac curtin,baron",
              "C:/Users/ProblemX/OneDrive/Documents/Cuny SPS/Data 607/Week3/helloText.txt",
              "02/13/2018",
              "<span>Span tag</span>")
pats <- c("[0-9]+\\$", 
          "\\b[a-z]{1,4}\\b",
          ".*?\\.txt$",
          "\\d{2}/\\d{d}/\\d{4}",
          "<(.+?)>.+?</\\1>")

data_frame(patterns = pats, testStrings = test_str) %>%
  print
## # A tibble: 5 x 2
##   patterns               testStrings                                      
##   <chr>                  <chr>                                            
## 1 "[0-9]+\\$"            4$                                               
## 2 "\\b[a-z]{1,4}\\b"     baron curtin bac curtin,baron                    
## 3 ".*?\\.txt$"           C:/Users/ProblemX/OneDrive/Documents/Cuny SPS/Da~
## 4 "\\d{2}/\\d{d}/\\d{4}" 02/13/2018                                       
## 5 "<(.+?)>.+?</\\1>"     <span>Span tag</span>

9.) The following code hides a secret message

code <- "clcopCow1zmstc0d87wnkig7OvdicpNuggvhryn92Gjuwczi8hqrfpRxs5Aj5dwpn0TanwoUwisdij7Lj8kpf03AT5Idr3coc0bt7yczjatOaootj55t3Nj3ne6c4Sfek.r1w1YwwojigOd6vrfUrbz2.2bkAnbhzgv4R9i05zEcrop.wAgnb.SqoU65fPa1otfb7wEm24k6t3sR9zqe5fy89n6Nd5t9kc4fE905gmc4Rgxo5nhDk!gr"

msg <- code %>%
  str_extract_all("[[A-Z].]") %>%
  unlist %>%
  str_replace_all("[.]", " ") %>%
  paste(collapse = "") %>%
  print
## [1] "CONGRATULATIONS YOU ARE A SUPERNERD"