#r #tidyverse
#r #tidyverse
Вопрос:
Я извлек данные публикации из Microsoft Academic. К сожалению, у некоторых авторов разные версии их имен, например
names <- data.frame(publication_id = c("1", "2", "3", "4", "5"), author = c("D Smith", "D J Smith", "David Smith", "Enrique Salvador", "E J Salvador"), affiliation = c("UCT", "UCT", "UCT", "UTAS", "UTAS")
Я хочу, чтобы у авторов было уникальное имя. Используя приведенный выше пример, я хочу получить результат, который выглядит следующим образом:
names <- data.frame(publication_id = c("1", "2", "3", "4", "5"), author = c("D. Smith", "D Smith", "D Smith", "E Salvador", "E Salvador"), affiliation = c("UCT", "UCT", "UCT", "UTAS", "UTAS")
Я имею дело с 1000 именами авторов, поэтому использую что-то вроде:
mutate(author = case_when(author == "D.J. Smith" ~ "D. Smith", author == "David Smith" ~ "D.Smith",
это непрактично. Я был бы признателен за любые идеи / решения. Заранее спасибо.
Комментарии:
1. Можете ли вы также получить номера orcid или идентификаторы исследователя? Если вам удастся найти решение, оно понадобится каждой базе данных в мире.
Ответ №1:
Я думаю, что наиболее вероятным решением было бы взять первую букву строки и фамилию и соединить их вместе:
names <- data.frame(publication_id = c("1", "2", "3", "4", "5"), author = c("D Smith", "D J Smith", "David Smith", "Enrique Salvador", "E J Salvador"), affiliation = c("UCT", "UCT", "UCT", "UTAS", "UTAS"))
names$new_author <- paste0(substr(names$author, 1, 1),
" ",
gsub('.*\s(\w*)
Тем не менее, предполагается, что в UCT есть только один D Smith, что может быть несостоятельным предположением.
Комментарии:
1. Ваша точка зрения относительно этого предположения верна. У меня есть атрибут field of study, который помогает смягчить эту проблему. Дайан Смит и Дэвид Смит могут быть супружеской парой, работающей вместе в одной и той же области в одном и том же учреждении. Это было бы непростой задачей.
2. r-bloggers.com/2016/01/string-manipulations-on-full-names это тоже весьма полезно.
, '\1', names$author))
names
# publication_id author affiliation new_author
# 1 1 D Smith UCT D Smith
# 2 2 D J Smith UCT D Smith
# 3 3 David Smith UCT D Smith
# 4 4 Enrique Salvador UTAS E Salvador
# 5 5 E J Salvador UTAS E Salvador
Тем не менее, предполагается, что в UCT есть только один D Smith, что может быть несостоятельным предположением.
Комментарии:
1. Ваша точка зрения относительно этого предположения верна. У меня есть атрибут field of study, который помогает смягчить эту проблему. Дайан Смит и Дэвид Смит могут быть супружеской парой, работающей вместе в одной и той же области в одном и том же учреждении. Это было бы непростой задачей.
2. r-bloggers.com/2016/01/string-manipulations-on-full-names это тоже весьма полезно.