Я пытаюсь сопоставить уникальных авторов из файла bibTEX в R, используя grepl(), но у меня возникают проблемы с его совпадением с тем, (а не только один или другой). Только имя фамилии было бы хорошим, но в моей библиографии есть несколько авторов с тем же именем.Использование grepl в R, чтобы соответствовать фамилии и именам из списка соавторов
Мой входной файл (например) - dat.bib:
@article{ test1,
Author = {Williams, Kate and Williams, Jeff},
Title = {{Test1}},
Journal = {{Testy}},
Year = {{2010}},
}
@article{ test2,
Author = {Williams, Leroy and Williams, Rory},
Title = {{Test2}},
Journal = {{Testy}},
Year = {{2010}},
}
А теперь, что я попытался в R
test <- read.bib("C/....dat.bib")
authors<- lapply(test, function(x) x$author)
дает:
$test1
[1] "Kate Williams" "Jeff Williams"
$test2
[1] "Leroy Williams" "Rory Williams"
Я не могу использовать результаты деятельности "авторов в одиночку, потому что я пытаюсь анализ соавтор, и это будет возвращать один и тот же автор, как отдельные результаты, если они в соавторстве с несколько документов.
Я попытался сопоставления уникальных авторов:
unique.authors <- unique((unlist(authors))[grepl('family', names(unlist(authors)),ignore.case=TRUE)])
возвращающий:
[1] "Williams"
и
unique.authors <- unique((unlist(authors))[grepl('given', names(unlist(authors)),ignore.case=TRUE)])
возвращает:
[1] "Kate" "Jeff" "Leroy" "Rory".
Но то, что я хочу, это уникальные авторы вернуть
"Kate Williams" "Jeff Williams" "Leroy Williams" "Rory Williams"
Я пытался связывать «семью» и «приведенные аргументы вместе
x <- c("family", "given")
unique.authors <- unique((unlist(authors))[grepl(x, names(unlist(authors)))])
Который дает предупреждение:
In grepl(x, names(unlist(authors))) :
argument 'pattern' has length > 1 and only the first element will be used.
Есть ли способ связать аргументы параметров вместе или связать «family» и «given» в файле bibtex?
Я все еще новичок, любая помощь очень ценится!
Большое спасибо :) – mlcyo