【发布时间】:2021-10-06 22:58:17
【问题描述】:
我在一个文件夹 ("C:/Users/Documents/files_i_want") 中有许多 pdf 文件(这些是“扫描的”)。 PDF 的文件如下所示:
https://jeroen.github.io/images/ocrscan.pdf
所有的 pdf 文件都有不同的名称。我正在尝试使用以下命令同时将它们全部导入 R:pdftools::pdf_convert
library(pdftools)
library(tesseract)
#Get the path of filenames
filenames <- list.files("C:/Users/Documents/files_i_want", full.names = TRUE)
#Read them in a list
list_data <- lapply(filenames, pdftools::pdf_convert)
#Name them as per your choice (df_1, df_2 etc)
names(list_data) <- paste('df', seq_along(filenames), sep = '_')
#Create objects in global environment.
list2env(list_data, .GlobalEnv)
这会返回以下错误:
Error in names(list_data) <- paste("df", seq_along(filenames), sep = "_") :
'names' attribute [1] must be the same length as the vector [0]
有谁知道为什么会产生这个错误?
谢谢
更新
我想出了如何从文件夹中上传所有 pdf:
library(pdftools)
library(tesseract)
directory <- "C:/Users/OneDrive/Documents/files_i_want"
file.list <- paste(directory, "/",list.files(directory, pattern = "*.pdf"), sep = "")
b = lapply(file.list, FUN = function(files) {
pdf_convert(files, format = "jpeg")
})
a = data.frame(file.list)
现在,我必须弄清楚如何在对象“a”中的每个“条目”上应用以下函数,例如“i”代表对象“a”中的每个“条目”(目标是创建“text_1”和“text_2”,例如text_1
convert_function <- function(i){
text_i <- tesseract::ocr(i)
}
【问题讨论】:
-
names(list_data)返回什么?seq_along(filenames)返回什么? -
我记得几周前您提出的一个非常相似的问题,如果不是完全相同的话。你是转发还是这个不一样?
-
看来您的文件名向量的长度为 0
-
所以
list_data没有名字,filenames是空的。list.files("C:/Users/Documents/files_i_want", full.names = TRUE)返回什么? -
您可能在 list.files 中有错误的路径名...
标签: r pdf text import tesseract