#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