Я использовал чрезвычайно полезный пакет rentrez в R для получения информации об авторе, идентификаторе статьи и принадлежности автора из базы данных Pubmed. Это отлично работает, но теперь я хотел бы извлечь информацию из поля принадлежности. К сожалению, поле аффилиации представляет собой широко неструктурированную, не стандартизированную строку с различными типами информации, такой как название университета, название факультета, адрес и многое другое, разделенное запятыми. Поэтому для получения любой полезной информации из этого поля необходим метод анализа текста.
Я попробовал пакет easyPubmed в сочетании с rentrez, и хотя пакет easyPubmed может извлекать некоторую информацию из поля принадлежности (например, адрес электронной почты, что очень полезно), насколько мне известно, он не может извлечь название университета. Я также попробовал пакет pubmed.mineR, но, к сожалению, он также не обеспечивает извлечение названия университета. Я начал экспериментировать с функциями grep и regex, но, поскольку я не являюсь экспертом по R, я не мог заставить это работать.
Мне удалось найти очень похожие темы, решающие проблему с python:
Регулярное выражение для извлечения названий колледжей, университетов и институтов? а>
Но, к сожалению, я не знаю, как преобразовать функцию регулярного выражения python в функцию регулярного выражения R, поскольку я не знаком с python.
Вот некоторые примеры данных:
PMID = c(121,122,123,124,125)
author=c("author1","author2","author3","author4","author5")
Affiliation = c("blabla,University Ghent,blablabla", "University Washington, blabla, blablabla, blablabalbalba","blabla,University of Florence,blabla", "University Chicago, Harvard University", "Oxford University")
df = as.data.frame(cbind(PMID,author,Affiliation))
df
PMID author Affiliation
1 121 author1 blabla,University Ghent,blablabla
2 122 author2 University Washington, blabla, blablabla, blablabalbalba
3 123 author3 blabla,University of Florence,blabla
4 124 author4 University Chicago, Harvard University
5 125 author5 Oxford University
Что я хотел бы получить:
PMID author Affiliation University
1 121 author1 blabla,University Ghent,blablabla University Ghent
2 122 author2 University Washington,ba, bla, bla University Washington
3 123 author3 blabla,University Florence,blabla University of Florence
4 124 author4 University Chicago, Harvard Univ University Chicago, Harvard University
5 125 author5 Oxford University Oxford University
Пожалуйста, извините, если решение уже есть в сети, но я, честно говоря, много гуглил и не нашел четкого решения для R. Буду очень благодарен за любые подсказки и решения этой задачи.