как создать тот же формат из фрейма данных в r

#r

#r

Вопрос:

У меня есть фрейм данных что-то вроде:

 myData <-  User                        App
            17567123@hvr.ac.uk         Wa
            17567123                   Browsing
            17567123@students.ac.uk    Wa
            hvr.ac.uk17567123         Browsing
            17567124@students.ac.uk    Youtube
            17567124                   Ig
            Jhon                       Wa
 

К чему — то вроде этого:

 > myData

   User        App
1  17567123   Wa 
2  17567123   Browsing
3  17567123   Wa
4  17567123   Browsing
5  17567124   Youtube 
6  17567124   Ig     
7  Jhon       Wa    
 

Вопрос
Я хочу создать тот же формат для пользовательского столбца. Есть какие-нибудь идеи о том, как это сделать?

Заранее спасибо!

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

1. Итак, вы хотите сохранить числа / цифры из пользовательского столбца и впоследствии присвоить каждому уникальный идентификатор?

Ответ №1:

Мы можем извлечь номер из User столбца и для каждого номера присвоить ему уникальную букву.

 library(dplyr)

df %>%
  mutate(num = stringr::str_extract(User, '\d '), 
         User1 = LETTERS[match(num, unique(num))]) -> df
df
#                     User      App      num User1
#1      17567123@hvr.ac.uk       Wa 17567123     A
#2                17567123 Browsing 17567123     A
#3 17567123@students.ac.uk       Wa 17567123     A
#4      hvr/ac/uk/17567123 Browsing 17567123     A
#5 17567124@students.ac.uk  Youtube 17567124     B
#6                17567124       Ig 17567124     B
#7                17567124       Wa 17567124     B
 

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

1. Что делать, если в столбце user значением является идентификационный номер. Пример 17523891, 18927872 и еще

2. Вы должны соответствующим образом обновить свой пример и показать ожидаемый результат для него.

3. @DioAgusNofrizal Хорошо … можете ли вы проверить, помогает ли мой обновленный ответ?

Ответ №2:

Работает ли это:

 library(dplyr)
library(stringr)
myData %>% mutate(NewUser =str_remove(User, '@?gmail[\.\/]com/?'))
# A tibble: 7 x 3
  User        App      NewUser
  <chr>       <chr>    <chr>  
1 A@gmail.com Wa       A      
2 A           Browsing A      
3 A@gmail.com Wa       A      
4 gmail/com/A Browsing A      
5 B@gmail.com Youtube  B      
6 B           Ig       B      
7 B           Wa       B