Я работаю в R, пытаюсь подготовить текстовые документы для анализа.Каждый документ хранится в столбце (метко названном «документ») фрейма данных, который называется «metaDataFrame».Документы представляют собой строки, содержащие статьи и информацию о цитировании BibTex.Фрейм данных выглядит следующим образом:
[1] filename document doc_number
[2] lithuania2016 Commentary highlights Estonian... 1
[3] lithuania2016 Norwegian police, immigration ... 2
[4] lithuania2016 Portugal to deply over 1,000 m... 3
Я хочу извлечь информацию BibTex из каждого документа в новый столбец.Информация о цитировании начинается с «Credit:», но некоторые статьи содержат несколько экземпляров «Credit:», поэтому мне нужно извлечь весь текст после последнего экземпляра.К сожалению, строке только иногда предшествует новая строка.
Мое решение до сих пор заключалось в том, чтобы найти все экземпляры строки и сохранить местоположение последнего экземпляра «Credit:» в каждом документе в списке:
locate.last.credit <- lapply(gregexpr('Credit:', metaDataFrame$document), tail, 1)
Это обеспечивает список целочисленных местоположений последней строки «Кредит:» в каждом документе или значения «-1», где экземпляр не найден.(Эти пропущенные значения представляют собой отдельную, но связанную проблему, которую, я думаю, я могу решить после решения этой проблемы).
Я пробовал варианты strsplit, substr, stri_match_last и rm_between ..., но не могу найти способ использовать положение символа вместо регулярного выражения для извлечения этой части строки.
Как я могу использовать расположение символов для манипулирования строкой вместо регулярных выражений?Есть ли лучший подход к этому (возможно, с регулярным выражением)?