我正在尝试转换多个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次。我有任何可以一次传递所有名字的代码行。
发布于 2016-08-19 12:06:43
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()也会返回数据,但至少它这样做是看不见的(并且返回原始数据时没有修改)。
发布于 2016-08-19 11:48:31
lapply(filesnames, function(i)
write.table(pdf_text(i), file = paste(i, ".xls", sep = ""), sep = " "))https://stackoverflow.com/questions/39038199
复制相似问题