Skip to content

Instantly share code, notes, and snippets.

@bryceroney
Created April 3, 2020 05:33
Show Gist options
  • Save bryceroney/874f77829b98b8a1e46fc6b2c7d16197 to your computer and use it in GitHub Desktop.
Save bryceroney/874f77829b98b8a1e46fc6b2c7d16197 to your computer and use it in GitHub Desktop.
library(tidyverse)
# Load our emails
emails <- read_csv("C:/temp/all_emails.csv")
# Set our email regular expression
email.re <- "^[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*$"
email.re.potential <- "[a-zA-Z0-9.!#$%&'*+\\/=?^_`{|}~-]+@[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?(?:\\.[a-zA-Z0-9](?:[a-zA-Z0-9-]{0,61}[a-zA-Z0-9])?)*"
emails$OriginalEmail <- emails$Value
emails$ModifiedEmail <- gsub(" ", "", emails$OriginalEmail, fixed=TRUE) #Remove erroneous spaces
emails$ModifiedEmail <- gsub( "\"", "", emails$ModifiedEmail, fixed=TRUE) #Remove erroneous quote marks
# Extract our actual emails
emails$CorrectEmail <- str_extract(emails$ModifiedEmail, email.re.potential)
tmp<-emails %>% filter(is.na(CorrectEmail))
emails.final <- emails %>%
mutate(Action = case_when(
is.na(CorrectEmail) ~ "DELETE",
ModifiedEmail != OriginalEmail ~ "CHANGE",
TRUE ~ "NO ACTION"
)) %>%
filter(Action != "NO ACTION")
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment