检索指定索引之前的字符的第一个实例

Retrieving the First Instance of a Character Preceding a Specified Index

我想在 R 中检索指定关键字之前的单词。例如,如果我传入:

The Red Dog

和 "Dog" 是指定的关键字,我希望能够检索单词 "Red" 并将其保存到向量中。是否有可以执行此操作的功能已经存在?我已经浏览了 stringr 包,但没有运气。

这是一种方法:

prior_word <- function(x, w, if_first = "[The First Word]"){
    xs = strsplit(x, " ")[[1]]
    c(if_first, xs)[ match(w, xs) ]
}

示例:

prior_word("The Red Red Dog", "Red")
# "The"

所以只有 "Red" 的第一个实例被识别。

prior_word("The Red Dog", c("The","Red","Dog", "Pirate"))
# "[The First Word]" "The"              "Red"              NA

如果一个词是第一个,返回一些默认值;如果找不到该词,NA.