如何将 officer::read_docx 应用于整个文件夹

How to apply officer::read_docx to whole folder

我正在尝试扫描许多文档,目的是将文本重新组织成标准格式。这涉及使用 docxtractr 提取 table,并使用 textreadr 单独提取正文文本,或者使用 officer::docx_summary 标记正文和 table 文本以便更容易操纵。对于这个问题,我使用 officer::read_docxofficer::docx_summary。我使用的测试文档是 .docx,并且在包含文本和数字的 table 前后包含无意义的文本。

我的代码是:

dir <- "C:/path/to/documents"
filenames <- list.files(path = dir, pattern = "*.docx", full.names = TRUE)
docxtest <- officer::docx_summary(lapply(filenames, officer::read_docx))

理想情况下,它会生成包含 docx_summary 信息的数据帧列表。我尝试在文件名列表上使用 lapply,但在尝试查看时输出列表出现错误:

Error in names[[i]]: subscript out of bounds.

officer::docx_summary是针对officer::read_docx返回的对象,不支持list...

filenames <- list.files(path = dir, pattern = "*.docx", full.names = TRUE)
docxtest <- lapply(filenames, function(x) officer::docx_summary(officer::read_docx(x)) )