在 R 的 pdftools 库中传递数组

Passing Array in pdftools library of R

我正在尝试将多个 pdf 文件转换为 excel 版本,以便通过 vba 我可以操纵文本并找到一些特定的数字。我写的代码是:

library("pdftools")
setwd("C:/Users/mohit.bansal/Desktop/CSL")
filenames <- list.files(pattern = "*.pdf", all.files = TRUE )
filenames
txt <- pdf_text(filenames[1])
write.table(txt, file = paste(filenames[1], ".xls", sep = ""), sep = " ")
txt <- pdf_text(filenames[2])
write.table(txt, file = paste(filenames[2], ".xls", sep = ""), sep = " ")
txt <- pdf_text(filenames[3])
write.table(txt, file = paste(filenames[3], ".xls", sep = ""), sep = " ")

这里我将所有的pdf文件名传入数组名文件名,然后我将文件名一个一个传入,转换成excel。我想要的是独立于最后重复的代码行。假设我在一个文件夹中有 25 个文件,我需要将这些行写 25 次。我有任何代码行可以一次传递所有名称。

lapply(filesnames, function(i) 
   write.table(pdf_text(i), file = paste(i, ".xls", sep = ""), sep = " "))
library(pdftools)

setwd("C:/Users/mohit.bansal/Desktop/CSL")

filenames <- list.files(pattern = "*.pdf", all.files = TRUE )

for (fname in filenames) {
  txt <- pdf_text(fname)
  write.table(txt, file = paste(fname, ".xls", sep = ""), sep = " ")
}

但是,控制台中的 help("for") 会提供有关如何使用 for 循环的足够信息。

使用 *apply 函数族的 "problem" 是将结果转储回环境中的副作用(即使只是暂时的)。甚至 purrrr::walk() returns 数据返回,但至少它是无形的(并且 returns 原始数据未修改)。