проверьте, не дублируется ли имя в столбце электронной почты

#r

#r

Вопрос:

у меня есть фрейм данных, как показано ниже, теперь я хочу проверить, дублируется ли имя перед @, если дублируется, то измените новый столбец на (1,0) для TRUE и FALSE

 df <- data.frame(ID =c("DEV2962","KTN2252","ANA2719","ITI2624","DEV2698","HRT2921","","KTN2624","ANA2548","ITI2535","DEV2732","HRT2837","ERV2951","KTN2542","ANA2813","ITI2210"),
                 city=c("del","mum","nav","pun","bang","chen","triv","vish","del","mum","bang","vish","bhop","kol","noi","gurg"),
                 email = c("akash.dev@gmail.com","rahul.singh@gmail.com","salman.abbas@gmail.com","ram.lal@gmail.com","ram.lal@gmail.com","prabal.garg@gmail.com","sanu.ali@gmail.com","kunal.singh@gmail.com","lakhan.tomar@gmail.com","praveen.thakur@gmail.com","sarman.ali@gmail.com","zuber.khan@gmail.com","giriraj.singh@gmail.com","lokesh.sharma@gmail.com","pooja.pawar@gmail.com","nikita.sharma@gmail.com"),
                 name= c("dev,akash","singh,rahul","abbas,salman","lal,ram","singh,nkunj","garg,prabal","ali,sanu","singh,kunal","tomar,lakhan","thakur,praveen","ali,sarman","khan,zuber","singh,giriraj","sharma,lokesh","pawar,pooja","sharma,nikita"))

  

у меня также есть тот же старый фрейм данных, чтобы проверить, присутствует ли идентификатор почты в старом фрейме данных, если присутствует, проверьте, что все записи одинаковы (имя, город, идентификатор)

я пытался использовать string_detect, но это не работает.

вывод будет выглядеть

введите описание изображения здесь

Комментарии:

1. Можете ли вы опубликовать old в dput формате? Пожалуйста, отредактируйте вопрос с выводом dput(old) . Или, если оно слишком большое с выводом dput(head(old, 20)) .

Ответ №1:

Это должно подействовать на первую часть вопроса:

 library(stringr)
df %>% 
  mutate(first =str_extract(email, "[^\@] "),
         duplicate = as.numeric(duplicated(first))) 

  

Первая строка извлекает все до @ , а вторая строка находит любые дублированные наблюдения first .

Комментарии:

1. Голосовать за, но я бы закончил канал на select(-first) , вспомогательный столбец отсутствует в ожидаемом выводе.