#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