我正在尝试将多个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次。我有任何代码行可以立即传递所有名称。
答案 0 :(得分:2)
lapply(filesnames, function(i)
write.table(pdf_text(i), file = paste(i, ".xls", sep = ""), sep = " "))
答案 1 :(得分:1)
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
系列函数的“问题”是将结果转储回环境会产生副作用(即使只是暂时的)。即使purrrr::walk()
返回数据,但至少它是不可见的(并且未经修改地返回原始数据)。