在 R 中为 str_extract_all 使用变量输入

Using variable input for str_extract_all in R

就 R 和一般编码而言,我还很新手。我最近一直在为一门语言学课程从事 CS 项目,通过该项目我在 指环王 中找到围绕各种自然景观词的词。例如,我对查找围绕“溪流”、“山脉”等词使用的描述性词很感兴趣

无论如何,为了从文本中提取所有这些词,我一直在研究 post。当 运行 这个命令单独运行时,它有效:

stringr::str_extract_all(text, "([^\s]+\s){4}stream(\s[^\s]+){6}")

其中“流”是我要查找的特定词。前后的数字指定我要一起提取前后多少个单词。

但是,我有兴趣将这个(和其他一些东西)组合到一个函数中,您只需要在其中插入要搜索的文本以及要获取上下文的单词。但是,据我所知,除了在上面的代码中使用一个特定的词,我什么也做不了。在用 R 编写函数的上下文中,是否有一种方法可以包含上述代码,但使用变量输入,例如

stringr::str_extract_all(text, "([^\s]+\s){4}WORD(\s[^\s]+){6}")

其中 WORD 是您在整个函数中指定的任何内容:

function(text,WORD)
对于这个 post 的普遍明显的新颖性,我深表歉意。我对所有这一切都很陌生,但非常感谢您提供的任何帮助。

这就是你要找的,如果我没理解错的话,

my_fun <- function(input_text, word) {
    
    
    stringr::str_extract_all(
        string = input_text,
        pattern = paste("([^\s]+\s){4}", word,  "(\s[^\s]+){6}", sep = "")
    )
    
    
    
}

愿埃雅仁迪尔的光芒永远照耀着你!