grepl() を使用して R の bibTEX ファイルから一意の作成者を一致させようとしていますが、'given' 名と 'family' 名の両方を一致させるのに問題があります (どちらか一方だけではなく.Family name のみ問題はありませんが、私の参考文献には同じ姓の著者が複数います。
私の入力ファイル(例)は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.
パラメータ引数を一緒にバインドする方法、または bibtex ファイルで「家族」と「与えられた」をバインドする方法はありますか?
私はまだ初心者です。どんな助けでも大歓迎です!