Как создать тот же формат в пользовательском столбце в r?

#r

#r

Вопрос:

У меня возникли некоторые проблемы со ссылкой на мой фрейм данных, потому что формат именования отличается. У меня есть dataframe что-то вроде:

 myData <-  User                        freq
            17567123@hvr.ac.uk         9
            17567123                   1
            17567123@students.ac.uk    2
            hvr.ac.uk17567123         1
            17567124@students.ac.uk    2
            17567124                   3
            Jhon                       1
 

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

 > myData

   User        freq
1  17567123     13 
2  17567124     5   
3  Jhon         1
 

Ответ №1:

Сначала удалите все символы после "@" или до последнего "" или "/" . Затем подведите итог freq по User . Попробуйте это

 library(dplyr)
library(stringr)


myData <- read.table(header = T, text = "
User                       freq
17567123@hvr.ac.uk         9
17567123                   1
17567123@students.ac.uk    2
hvr/ac/uk/17567123         1
hvr.ac.uk\17567123        1
17567124@students.ac.uk    2
17567124                   3
Jhon                       1
")

myData %>% group_by(User = str_remove(User, "(@. $)|(^. \\)|(^. \/)")) %>% summarise(freq = sum(freq))
 

Вывод

 `summarise()` ungrouping output (override with `.groups` argument)
# A tibble: 3 x 2
  User      freq
  <chr>    <int>
1 17567123    14
2 17567124     5
3 Jhon         1
 

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

1. Извините, я обновляю строку номер 4 с помощью (.). Как удалить символ в идентификаторе пользователя?

2. у меня в моих данных один символ (»), а не два, как это исправить?

3. Привет @DioAgusNofrizal, «\» в R означает один «», потому что первый «» является escape-символом. Попробуйте nchar("\") .

4. Я думаю, что в summarise есть ошибка, потому что вместо этого функция вычисляет количество столбцов freq

5. Извините, я не понимаю, что вы имеете в виду. Можете ли вы показать сообщение об ошибке? @DioAgusNofrizal