Как обеспечить, чтобы у авторов было уникальное имя

#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 это тоже весьма полезно.