如何将 officer::read_docx 应用于整个文件夹
How to apply officer::read_docx to whole folder
我正在尝试扫描许多文档,目的是将文本重新组织成标准格式。这涉及使用 docxtractr
提取 table,并使用 textreadr
单独提取正文文本,或者使用 officer::docx_summary
标记正文和 table 文本以便更容易操纵。对于这个问题,我使用 officer::read_docx
和 officer::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)) )
我正在尝试扫描许多文档,目的是将文本重新组织成标准格式。这涉及使用 docxtractr
提取 table,并使用 textreadr
单独提取正文文本,或者使用 officer::docx_summary
标记正文和 table 文本以便更容易操纵。对于这个问题,我使用 officer::read_docx
和 officer::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)) )