如何在R中重复此搜索功能?

如何在R中重复此搜索功能?,r,loops,R,Loops,我有几个rtf文件,并想搜索,如果某些字出现在文件中。如果它出现了,我想用这个词来提取整个句子 这是我想重复的代码部分。我在文档“a1”上尝试了此操作,但我想搜索的同一文件夹中有文档a1到a10 library(striprtf) files <- list.files(path="/Users/Jane/R/Test", pattern="*.rtf", full.names=TRUE, recursive=FALSE) rtf <- read_rtf("a1.rtf", ve

我有几个rtf文件,并想搜索,如果某些字出现在文件中。如果它出现了,我想用这个词来提取整个句子

这是我想重复的代码部分。我在文档“a1”上尝试了此操作,但我想搜索的同一文件夹中有文档a1到a10

library(striprtf)

files <- list.files(path="/Users/Jane/R/Test", pattern="*.rtf", full.names=TRUE, recursive=FALSE)

rtf <- read_rtf("a1.rtf", verbose = FALSE, row_start = "*| ", row_end = "",
         cell_end = " | ", ignore_tables = FALSE, check_file = TRUE)

text <- unlist(strsplit(rtf, "\\."))

)
库(striprtf)
文件您可以使用
lappy()
并定义一个函数来执行所需操作<代码>结果
将是一个包含所有匹配数据帧的列表

library(striprtf)

files <- list.files(path="/Users/Jane/R/Test", pattern="*.rtf", full.names=TRUE, recursive=FALSE)
# files <-paste0(paste0("a",1:10),".rtf")

results = lapply(files, function(x) {
  rtf <- read_rtf(x, verbose = FALSE, row_start = "*| ", row_end = "",
                  cell_end = " | ", ignore_tables = FALSE, check_file = TRUE)

  text <- unlist(strsplit(rtf, "\\."))


  toMatch <- c("passive","fund act")
  matches <- unique(grep(paste(toMatch,collapse="|"), 
                         text, value=TRUE))
  matches <- data.frame(matches)
})
库(striprtf)

文件如何将文件名附加为结果中的列之一?